Javascript是一種弱型別,或是說動態型別語言
參數型態可以動態調整,舉例來說
let foo = 42; // foo is now a number
foo = 'bar'; // foo is now a string
foo = true; // foo is now a boolean
除此之外,Javascript提供以下幾種常見的原始資料型別
String for the string primitive.
Number for the number primitive.
Boolean for the boolean primitive.
由於Javascript的原始資料型別跟其他語言非常類似,就不特別介紹
說明幾個比較特別的部分
第一個就是一般等於(雙等於)及嚴格等於(三等於)的比較
參考資料:https://felix-kling.de/js-loose-comparison/
1、如果型別不同,就[不相等]
2、如果兩個都是數值,並且是同一個值,那麼[相等];
3、如果兩個都是字串,每個位置的字元都一樣,那麼[相等];否則[不相等]。
4、如果兩個值都是true,或者都是false,那麼[相等]。
5、如果兩個值都引用同一個物件或函式,那麼[相等];否則[不相等]。
6、如果兩個值都是null,或者都是undefined,那麼[相等]。
1、如果兩個值型別相同,進行 === 比較。
2、如果兩個值型別不同,他們可能相等。根據下面規則進行型別轉換再比較:
a、如果一個是null、一個是undefined,那麼[相等]。
b、如果一個是字串,一個是數值,把字串轉換成數值再進行比較。
c、如果任一值是 true,把它轉換成 1 再比較;如果任一值是 false,把它轉換成 0 再比較。
d、如果一個是物件,另一個是數值或字串,把物件轉換成基礎型別的值再比較。
e、任何其他組合,都[不相等]。
另外一種特別的資料型態是null & undefined
undefined比較容易解釋,只要一個變數在初始的時候未給予任何值的時候,就會產生 undefined
var a;
console.log(a);
// print : undefined
變數要經過宣告,賦予 null ,才會形成 null 型態
var b=null;
console.log(b);
// print : null