typeof的運算

先上代碼
typeof 1 === true ? 1 : 0
控制檯打印能夠看到答案是0,由於typeof先進行計算。若是改爲下面這樣:
typeof(1 === true ? 1 : 0)
答案則是number數組

typeof運算符自己只會返回字符串,code

1. undefined
2. boolean
3. string
4. number
5. object
6. function

typeof來判斷數據類型會有幾個坑:對象

  1. null返回的是object,可是不能當對象使用
var obj = null;
if (typeof obj === 'object') {
    obj.a(); // 報錯
}
  1. 對NaN返回的是number,可是不能進行算術運算
var obj = {};
var num = parseInt(obj.a);
if (typeof num === 'number') {
    num = num + 10; // 執行後num仍是NaN
}
  1. 不能區分對象、數組、正則,對它們的操做返回都是'object'
var obj = {};
var arr = [];
var reg = /abc/g;
console.log(typeof obj);
console.log(typeof arr);
console.log(typeof reg);
相關文章
相關標籤/搜索