先來稍微講下動態型別和靜態型別
靜態型別:編譯時就知道變數型別
動態型別:執行時才知道變數型別
JavaScript 是動態型別語言,會在執行中不斷轉換
值的本身具備型別,值賦予到變數上時,變數的型別就會來自於值。
var name ;
name = '小明';
console.log(typeof name); //String
console.log(typeof '小明'); //String
型別也會在過程中轉換
var num = 1;
console.log(typeof num); //number
num = '文字';
console.log(typeof num); //string
顯性轉換:變數直接被賦予一個值 (上面的範例就屬於顯性轉換)
隱性轉換:運算過程中會產生型別變化,看以下的範例
var num = 1;
console.log(num, typeof num);
// 1 "number"
數字型別與字串型別相加結果
數字型別會轉成字串型別
var num = 1;
num = num + '';
console.log(num, typeof num);
// 1 string
字串型別與數字型別相乘結果
字串型別會轉成數字型別
var num = '1';
num = num * 3;
console.log(num, typeof num);
// 3 "number"