iT邦幫忙

2021 iThome 鐵人賽

DAY 11
1
自我挑戰組

JavaScript 核心觀念系列 第 11

【Day11】動態型別

  • 分享至 

  • xImage
  •  

JavaScript 是動態型別的程式語言,指的是變數的型別是可以更換的,

而 JavaScript 執行的過程中,會有創造階段和執行階段,

JavaScript 會在執行階段時才確立型別,

而我們如果要確認型別的話,可以使用 typeof 來進行確認,

而變數中的型別是根據賦予的值所決定的,因此變數和該變數的值型別會一樣

var myName = 'weiwei';

// 解析
// 創造階段
var myName;
// 執行,此時才將值賦予到變數中
myName = 'weiwei';

console.log(typeof myName);  // string
console.log(typeof 'weiwei')  // string

因為 JavaScript 變數的型別是可以更換的,

而型別轉換又可分為顯性的轉換和隱性的轉換

顯性的轉換(Explicit conversion)

當一個變數從原有的值被賦予另一個型別的值,

稱為顯性的轉換(Explicit conversion)

var num = 1;
console.log(typeof num);  // number
num = 'weiwei';
console.log(typeof num);  // string

上方範例中,num 的型別原來是 number

而賦予值 'weiwei' 時,型別轉為 string

這就是顯性的轉換(Explicit conversion)

隱性的轉換(Implicit conversion)

在運算過程中所產生的型別變化,

稱為隱性的轉換(Implicit conversion)

var num = 1;
console.log(1, typeof num);  // 回傳 1 number
num = num + '';
console.log(1, typeof num);  // 回傳 1 string
num = num * 3;
console.log(1, typeof num);  // 回傳 3 number

上方範例中,num 原本的型別為 number,值為 1

再加上空字串後,型別則轉換成 string,值為 1

此時再將 num * 3,型別則轉換成 number,且值變成 3

這就是隱性的轉換(Implicit conversion)


上一篇
【Day10】ASI 自動插入分號
下一篇
【Day12】原始型別及物件型別
系列文
JavaScript 核心觀念30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言