JavaScript監(jiān)測數(shù)據(jù)類型方法全面總結(jié)
需要檢測類型
需要檢測是不是 number string boolean undefined function
使用typeOf 檢測
使用typeOf 檢測是有局限性的 比如 數(shù)組、對象等引用類型檢測出來都是Object
console.log(typeOf 123) // Number
console.log(typeOf '123') // String
console.log(typeOf NaN) // Number
console.log(typeOf true) // Boolean
console.log(typeOf undefined) // Undefined
console.log(typeOf function(){}) // Function
console.log(typeOf null) // Object
console.log(typeOf {}) // Object
console.log(typeOf []) // Object使用 instanceof 檢測
使用 instanceof 檢測 某個對象是否屬于某個類的實例 但是檢測 數(shù)組、對象、函數(shù) 等引用類型檢測出來也是Object
console.log({}.instanceof Object) // true
console.log([].instanceof Array) // true
console.log(123.instanceof Number) // 報錯使用 construct 檢測
使用 construct 檢測 可以根據(jù)原型對象檢測
console.log({}.construct === Object) // true
console.log([].construct === Array) // true
console.log(123.construct === Number) // 報錯目前準確的檢:Object.prototype.toString.call()
console.log(Object.prototype.toString.call(123)) // [object Number]
console.log(Object.prototype.toString.call('ok')) // [object String]
console.log(Object.prototype.toString.call(true)) // [object Boolean]
console.log(Object.prototype.toString.call([]) // [object Array]
console.log(Object.prototype.toString.call({}) // [object Object]
console.log(Object.prototype.toString.call(function(){}) // [object Function]
console.log(Object.prototype.toString.call(/abc/) // [object RegExp]
console.log(Object.prototype.toString.call(null) // [object Null]
console.log(Object.prototype.toString.call(undefined) // [object Undefined]
let d= new Date()
console.log(Object.prototype.toString.call(d) // [object Date]
let s = Symbol
console.log(Object.prototype.toString.call(s) // [object Symbol]不足
instanceof 不足:
- 可以檢測出引用類型,但是檢測不出基本類型
- 所有應用類型,都是Object的實例
- 可以人為修改原型鏈,導致檢測的結(jié)果不準缺
typeOf不足:
- 可以檢測出基本類型,但是檢測不出引用類型,檢測出來都是Object
construct不足:
- 可以檢測出引用類型,但是檢測不出基本類型
- 可以人為修改原型鏈,導致檢測的結(jié)果不準缺
以上就是JavaScript監(jiān)測數(shù)據(jù)類型方法全面總結(jié)的詳細內(nèi)容,更多關(guān)于JavaScript監(jiān)測數(shù)據(jù)類型的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
JavaScript?API調(diào)用Rollup打包流程快速上手
這篇文章主要為大家介紹了JavaScript?API調(diào)用Rollup打包流程快速上手2023-05-05
Javascript中bind()方法綁定函數(shù)的使用與實現(xiàn)
這篇文章主要為大家介紹了Javascript中bind()方法綁定函數(shù)的使用與實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-06-06

