欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript監(jiān)測數(shù)據(jù)類型方法全面總結(jié)

 更新時間:2023年08月25日 11:32:13   作者:loong  
這篇文章主要為大家介紹了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) // 報錯

目前準(zhǔn)確的檢: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 不足:

  • 可以檢測出引用類型,但是檢測不出基本類型
  • 所有應(yīng)用類型,都是Object的實例
  • 可以人為修改原型鏈,導(dǎo)致檢測的結(jié)果不準(zhǔn)缺

typeOf不足:

  • 可以檢測出基本類型,但是檢測不出引用類型,檢測出來都是Object

construct不足:

  • 可以檢測出引用類型,但是檢測不出基本類型
  • 可以人為修改原型鏈,導(dǎo)致檢測的結(jié)果不準(zhǔn)缺

以上就是JavaScript監(jiān)測數(shù)據(jù)類型方法全面總結(jié)的詳細(xì)內(nèi)容,更多關(guān)于JavaScript監(jiān)測數(shù)據(jù)類型的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • quickjs 封裝 JavaScript 沙箱詳情

    quickjs 封裝 JavaScript 沙箱詳情

    這篇文章主要介紹了 quickjs 封裝 JavaScript 沙箱,在前文 JavaScript 沙箱探索 中聲明了沙箱的接口,并且給出了一些簡單的執(zhí)行任意第三方 js 腳本的代碼,但并未實現(xiàn)完整的 IJavaScriptShadowbox,下面便講一下如何基于 quickjs 實現(xiàn),需要的朋友可以參考一下
    2021-10-10
  • 可輸入的下拉框

    可輸入的下拉框

    可輸入的下拉框...
    2006-06-06
  • 微信小程序?qū)崿F(xiàn)緩存根據(jù)不同的id來進行設(shè)置和讀取緩存

    微信小程序?qū)崿F(xiàn)緩存根據(jù)不同的id來進行設(shè)置和讀取緩存

    這篇文章主要介紹了微信小程序?qū)崿F(xiàn)緩存根據(jù)不同的id來進行設(shè)置和讀取緩存的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • JavaScript執(zhí)行機制詳細(xì)介紹

    JavaScript執(zhí)行機制詳細(xì)介紹

    這篇文章主要介紹了JavaScript執(zhí)行機制,想要搞懂JavaScript執(zhí)行機制,便與進程與線程的概念脫不了干系,下面我們就來看看這JavaScript執(zhí)行機制的具體介紹吧,需要的朋友可以參考一下
    2021-12-12
  • JavaScript前端學(xué)算法題解LeetCode最大重復(fù)子字符串

    JavaScript前端學(xué)算法題解LeetCode最大重復(fù)子字符串

    這篇文章主要為大家介紹了JavaScript前端學(xué)算法題解LeetCode最大重復(fù)子字符串,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • JavaScript原型鏈詳解

    JavaScript原型鏈詳解

    這篇文要給大家介紹的是JavaScript原型鏈,文章主要介紹內(nèi)容有構(gòu)造函數(shù)、屬性Prototype、屬性Prototype、屬性__proto__、訪問原型上的方法等問題,需要的朋友可以參考一下文章的詳細(xì)內(nèi)容
    2021-11-11
  • 微信小程序--組件(swiper)詳細(xì)介紹

    微信小程序--組件(swiper)詳細(xì)介紹

    這篇文章主要介紹了微信小程序--組件(swiper)詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • rollup打包引發(fā)對JS模塊循環(huán)引用思考

    rollup打包引發(fā)對JS模塊循環(huán)引用思考

    這篇文章主要為大家介紹了rollup打包引發(fā)的對JS模塊循環(huán)引用的思考,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • 微信小程序template模板實例詳解

    微信小程序template模板實例詳解

    這篇文章主要介紹了微信小程序template模板使用的相關(guān)資料,希望通過本文能幫助到大家,讓大家理解掌握這樣的功能,需要的朋友可以參考下
    2017-10-10
  • threeJs實現(xiàn)波紋擴散及光標(biāo)浮動效果詳解

    threeJs實現(xiàn)波紋擴散及光標(biāo)浮動效果詳解

    這篇文章主要為大家介紹了threeJs實現(xiàn)波紋擴散及光標(biāo)浮動效果詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03

最新評論