ECMAScript 定義了 5 種簡單數據類型(Undefined、Null、Boolean、Number、String)和一種復雜數據類型(Object),后續會分別進行說明。
typeof 用于檢測給定變量的數據類型。
變量值類型 | typeof 返回值 |
---|---|
未定義 | undefined |
布爾值 | boolean |
字符串 | string |
數值 | number |
對象或者 null | object |
函數 | function |
typeof null
會返回 “object”,因為特殊值 null 被認為是一個空的對象引用。數據類型 | 轉換為 true | 轉換為 false |
---|---|---|
Boolean | true | false |
String | 非空字符串 | 空字符串 ” |
Number | 非零數字(包括無窮大) | 0 或 NaN |
Object | 對象 | null |
Undefined | undefined |
轉換規則:
傳入的參數類型 | 返回 |
---|---|
Boolean | true 和 false 分別被轉換為 1 和 0 |
數字 | 返回傳入的數字 |
null | 0 |
undefined | NaN |
字符串 | 后面單獨說明 |
對象 | 調用 valueOf 方法,再按前面的規則轉換返回的值。如果轉換結果是 NaN,則調用 toString 方法,再按前面的規則轉換返回的值 |
傳入的參數類型是字符串的情況比較復雜,這里單獨說明:
字符串格式 | 返回 |
---|---|
只包含數字(包括帶正負號的情況) | 轉換為十進制數值 |
有效浮點格式 | 轉換為對應的浮點格式 |
有效的十六進制格式 | 轉換為十進制數 |
空字符串 | 0 |
包含上述格式之外的字符 | NaN |
轉換規則:
傳入的參數類型 | 返回 |
---|---|
第一個非空格字符不是數字字符或者負號 | NaN |
空字符串 | NaN |
第一個非空格字符是數字字符 | 會繼續解析,直到解析完或者遇到一個非數字字符 |
字面量 | 含義 |
---|---|
/n | 換行 |
/t | 制表 |
/b | 空格 |
/r | 回車 |
/f | 進紙 |
//|斜杠 | |
/’ | 單引號,用于字符串中包含單引號的情況 |
/” | 雙引號,用于字符串中包含雙引號的情況 |
/xnn | 以十六進制代碼 nn 表示的一個字符( n 為 0 ~ F) |
/unnn | 以十六進制代碼 nnnn 表示的一個 Unicode 字符( n 為 0 ~ F) |
轉換規則:
輸入值 | 返回結果 |
---|---|
值有 toString() 方法 | 調用該方法并返回相應的結果 |
null | “null” |
undefined | “undefined” |
var o = new Object();
Object 類型時所有他的實例的基礎。即 Object 類型所具有的任何屬性和方法也同樣存在于更具體的對象中。Object 的每個實例都具有以下屬性和方法——方法名 | 說明 |
---|---|
Constructor | 保存著用于創建當前對象的函數 |
hasOwnPRoperty(propertyName) | 判斷給定的屬性在當前對象實例中是否存在,其中的屬性名是字符串形式傳入 |
isprototypeOf(object) | 判斷傳入的對象是否是另一個對象的原型 |
propertyIsEnumerable(propertyName) | 判斷給定的屬性是否能夠使用 for-in 語句,其中的屬性名是字符串形式傳入 |
toLocaleString() | 返回對象的字符串表示,考慮了本地時區 |
toString() | 返回對象的字符串表示 |
valueOf() | 返回對象的字符串、數值或布爾值表示,通常與 toString() 返回值相同 |
新聞熱點
疑難解答