JavaScript中使用typeof運算符需要注意的幾個坑
typeof是一個運算符,它對操作數(shù)返回的結(jié)果是一個字符串,有6種(只針對ES,不包含HOST環(huán)境對象)。
1.'undefined'
2.'boolean'
3.'string'
4.'number'
5.'object'
6.'function'
因為它本身是運算符,它不是函數(shù),使用時沒必要加個小括號。
if (typeof(obj) === 'undefined') {
// ...
}
typeof用來判斷類型,它有幾個坑
1. 對null返回是'object',你卻不能真正當對象使用。
var obj = null
if (typeof obj === 'object') {
obj.a() // 這里報錯
}
2. 對NaN返回是'number',你卻不能使用它進行算術(shù)運算。
var obj = {}
var num = parseInt(obj.a)
if (typeof num === 'number') {
num = num + 10 // 執(zhí)行后num仍然是NaN
}
3. 不能區(qū)分對象、數(shù)組、正則,對它們操作都返回'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之前的版本對正則對象返回 'function'。
最后貼上規(guī)范里的解釋
相關(guān)文章
ionic App問題總結(jié)系列之ionic點擊系統(tǒng)返回鍵退出App
本篇文章主要介紹了ionic App問題總結(jié)系列之ionic點擊系統(tǒng)返回鍵退出App,具有一定的參考價值,有興趣的可以了解一下2017-08-08JavaScript遍歷數(shù)組的三種方法map、forEach與filter實例詳解
這篇文章主要介紹了JavaScript遍歷數(shù)組的三種方法map、forEach與filter,結(jié)合實例形式詳細分析了javascript針對數(shù)組遍歷的map、forEach與filter三種方法相關(guān)操作技巧與注意事項,需要的朋友可以參考下2019-02-02js實現(xiàn)統(tǒng)計字符串中特定字符出現(xiàn)個數(shù)的方法
這篇文章主要介紹了js實現(xiàn)統(tǒng)計字符串中特定字符出現(xiàn)個數(shù)的方法,涉及javascript針對字符串中字符運算操作相關(guān)技巧,需要的朋友可以參考下2016-08-08JavaScript實現(xiàn)的原生態(tài)Tab標簽頁功能【兼容IE6】
這篇文章主要介紹了JavaScript實現(xiàn)的原生態(tài)Tab標簽頁功能,可兼容IE6及谷歌等瀏覽器,涉及javascript事件響應(yīng)及頁面元素動態(tài)操作相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2017-09-09學習JavaScript設(shè)計模式(鏈式調(diào)用)
這篇文章主要帶領(lǐng)大家學習JavaScript設(shè)計模式,其中重點介紹鏈式調(diào)用,感興趣的小伙伴們可以參考一下2015-11-11jquery獲取URL中參數(shù)解決中文亂碼問題的兩種方法
從A頁面通過url傳參到B頁面時,獲取URL中參數(shù)出現(xiàn)中文亂碼問題,解析url參數(shù)的正確方法如下,感興趣的朋友可以參考下2013-12-12詳解JavaScript時間處理之幾個月前或幾個月后的指定日期
本篇文章主要介紹了JavaScript時間處理之幾個月前或幾個月后的指定日期 ,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2016-12-12