1、最新的 ECMAScript 標準定義了 8 種數據類型:包括七種基本數據類型和一種引用類型:
類型 | 說明 |
---|---|
Boolean | 有 2 個值分別是:true 和 false。 |
null | 一個表明 null 值的特殊關鍵字。 |
undefined | 和 null 一樣是一個特殊的關鍵字 undefined 表示變量未賦值時的屬性。 |
Number | 整數或浮點數,例如: 42 或者 3.14159。 |
BigInt | 任意精度的整數,可以安全地存儲和操作大整數,甚至可以超過數字的安全整數限制。 |
String | 字符串是一串表示文本值的字符序列,例如:"Howdy"。 |
Symbol | 一種實例是唯一且不可改變的數據類型。 |
Object | 對象 |
2、使用Boolean函數轉換爲false的8種值。
爲什麼如此重要,因爲 if 語句會調用Boolean轉換函數將其轉化爲一個布爾值。if是最常用的語句,不熟悉轉換規則基本上寫不好代碼。
類型 | 結果 |
---|---|
Boolean(+0) | false |
Boolean(-0) | false |
Boolean(0n) | false |
Boolean(NaN) | false |
Boolean(null) | false |
Boolean(undefined) | false |
Boolean("") | false |
Boolean(false) | false |
document.all 也爲false。 當將非標準屬性 document.all 用作此構造函數的參數時,結果是值爲 false 的布爾對象。此屬性是舊的、非標準的屬性,不應使用。
3、使用 typeof 操作符返回的8種數據類型:
類型 | 結果 |
---|---|
Undefined | "undefined" |
Null | "object" |
Boolean | "boolean" |
Number | "number" |
Bigint | "bigint" |
String | "string" |
Symbol | "symbol" |
Function | "function" |
其他任何對象均返回 "object"
在 JavaScript 最初的實現中,JavaScript 中的值是由一個表示類型的標籤和實際數據值表示的。對象的類型標籤是 0。由於 null 代表的是空指針(大多數平臺下值爲 0x00),因此,null 的類型標籤是 0,typeof null 也因此返回 "object"。