typeof是一個(gè)運(yùn)算符,它對(duì)操作數(shù)返回的結(jié)果是一個(gè)字符串,有6種(只針對(duì)ES,不包含HOST環(huán)境對(duì)象)。
1、'undefined'
2、'boolean'
3、'string'
4、'number'
5、'object'
6、'function'
因?yàn)樗旧硎沁\(yùn)算符,它不是函數(shù),使用時(shí)沒必要加個(gè)小括號(hào)。
typeof用來判斷類型,它有幾個(gè)坑
1、 對(duì)null返回是'object',你卻不能真正當(dāng)對(duì)象使用。
代碼如下:
var obj = null
if (typeof obj === 'object') {
obj.a() // 這里報(bào)錯(cuò)
}
2. 對(duì)NaN返回是'number',你卻不能使用它進(jìn)行算術(shù)運(yùn)算。
代碼如下:
var obj = {}
var num = parseInt(obj.a)
if (typeof num === 'number') {
num = num + 10 // 執(zhí)行后num仍然是NaN
}
3. 不區(qū)分對(duì)象、數(shù)組、正則,對(duì)它們操作都返回'object'。
代碼如下:
var obj = {}
var arr = []
var reg = /pop/g
console.log(typeof obj) // 'object'
console.log(typeof arr) // 'object'
console.log(typeof reg) // 'object'
4. Safar5,Chrome7之前的版本對(duì)正則對(duì)象返回 'function'。
最后貼上規(guī)范里的解釋
上一篇:淺談前端存儲(chǔ)
掃一掃 加微信咨詢