JavaScript中使用typeof運(yùn)算符需要注意的幾個(gè)坑
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í)沒(méi)必要加個(gè)小括號(hào)。
if (typeof(obj) === 'undefined') {
// ...
}
typeof用來(lái)判斷類(lèi)型,它有幾個(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ī)范里的解釋
- JavaScript字符串轉(zhuǎn)數(shù)字的5種方法及遇到的坑
- 使用PHP json_decode可能遇到的坑與解決方法
- 基于js粘貼事件paste簡(jiǎn)單解析以及遇到的坑
- JavaScript代碼編寫(xiě)中各種各樣的坑和填坑方法
- Javascript中構(gòu)造函數(shù)要注意的一些坑
- JS大坑之19位數(shù)的Number型精度丟失問(wèn)題詳解
- JS面試題大坑之隱式類(lèi)型轉(zhuǎn)換實(shí)例代碼
- 對(duì)象題目的一個(gè)坑 理解Javascript對(duì)象
- 弱類(lèi)型語(yǔ)言javascript開(kāi)發(fā)中的一些坑實(shí)例小結(jié)【變量、函數(shù)、數(shù)組、對(duì)象、作用域等】
相關(guān)文章
ionic App問(wèn)題總結(jié)系列之ionic點(diǎn)擊系統(tǒng)返回鍵退出App
本篇文章主要介紹了ionic App問(wèn)題總結(jié)系列之ionic點(diǎn)擊系統(tǒng)返回鍵退出App,具有一定的參考價(jià)值,有興趣的可以了解一下2017-08-08JavaScript遍歷數(shù)組的三種方法map、forEach與filter實(shí)例詳解
這篇文章主要介紹了JavaScript遍歷數(shù)組的三種方法map、forEach與filter,結(jié)合實(shí)例形式詳細(xì)分析了javascript針對(duì)數(shù)組遍歷的map、forEach與filter三種方法相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2019-02-02js實(shí)現(xiàn)統(tǒng)計(jì)字符串中特定字符出現(xiàn)個(gè)數(shù)的方法
這篇文章主要介紹了js實(shí)現(xiàn)統(tǒng)計(jì)字符串中特定字符出現(xiàn)個(gè)數(shù)的方法,涉及javascript針對(duì)字符串中字符運(yùn)算操作相關(guān)技巧,需要的朋友可以參考下2016-08-08JavaScript實(shí)現(xiàn)的原生態(tài)Tab標(biāo)簽頁(yè)功能【兼容IE6】
這篇文章主要介紹了JavaScript實(shí)現(xiàn)的原生態(tài)Tab標(biāo)簽頁(yè)功能,可兼容IE6及谷歌等瀏覽器,涉及javascript事件響應(yīng)及頁(yè)面元素動(dòng)態(tài)操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-09-09學(xué)習(xí)JavaScript設(shè)計(jì)模式(鏈?zhǔn)秸{(diào)用)
這篇文章主要帶領(lǐng)大家學(xué)習(xí)JavaScript設(shè)計(jì)模式,其中重點(diǎn)介紹鏈?zhǔn)秸{(diào)用,感興趣的小伙伴們可以參考一下2015-11-11jquery獲取URL中參數(shù)解決中文亂碼問(wèn)題的兩種方法
從A頁(yè)面通過(guò)url傳參到B頁(yè)面時(shí),獲取URL中參數(shù)出現(xiàn)中文亂碼問(wèn)題,解析url參數(shù)的正確方法如下,感興趣的朋友可以參考下2013-12-12詳解JavaScript時(shí)間處理之幾個(gè)月前或幾個(gè)月后的指定日期
本篇文章主要介紹了JavaScript時(shí)間處理之幾個(gè)月前或幾個(gè)月后的指定日期 ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2016-12-12