真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

js數(shù)據(jù)類型檢測總結(jié)

在js中,有四種用于檢測數(shù)據(jù)類型的方式,分別是:

安圖網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)成立于2013年到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。

  • typeof  用來檢測數(shù)據(jù)類型的運算符
  • instanceof    檢測一個實例是否屬于某個類
  • constructor   構(gòu)造函數(shù)
  • Object.prototype.toString.call()  原型鏈上的Object對象的toString方法

下面我們就來分別介紹一下上面四種方法的適用場景和局限性。

typeof 用來檢測數(shù)據(jù)類型的運算符

使用typeof檢測數(shù)據(jù)類型,返回值是字符串格式。能夠返回的數(shù)據(jù)類型

是:"number","string","bolean","undefined","function","object"。

局限性:

  • typeof (null); //"object"。這是由于在js中,null值表示一個空對象指針,而這也正是使用typeof操作 符檢測null值時會返回"object"的原因。
  • 不能具體的細分是數(shù)組還是正則,還是對象中其他的值,因為使用typeof檢測數(shù)據(jù)類型,對于對象數(shù)據(jù)類型的所有的值,最后返回的都是"object"

instanceof 檢測某一個實例是否屬于某個類

instanceof主要用來彌補typeof不能檢測具體屬于哪個對象的局限性。

局限性:

  • 不能用于檢測和處理字面量方式創(chuàng)建出來的基本數(shù)據(jù)類型值,即原始數(shù)據(jù)類型
  • instanceof的特性:只要在當(dāng)前實例的原型鏈上的對象,我們用其檢測出來都為true
  • 在類的原型繼承中,我們最后檢測出來的結(jié)果未必正確

constructor 構(gòu)造函數(shù)

是函數(shù)原型上的屬性,該屬性指向的是構(gòu)造函數(shù)本身。

作用和instsnceof非常相似,與instanceof不同的是,不僅可以處理引用數(shù)據(jù)類型,還可以處理原始數(shù)據(jù)類型。

但是要注意一點的是,當(dāng)直接用(對象字面量或原始數(shù)據(jù)).constructor時,最好加上()。為了便于理解,我們來看一個例子。

這主要是由于js內(nèi)部解析方式造成的,js會把1.constructor解析成小數(shù),這顯然是不合理的,小數(shù)點后應(yīng)該是數(shù)字,因此就會引發(fā)報錯。js會把{}解析成語句塊來執(zhí)行,這時后面出現(xiàn)一個小數(shù)點顯然也是不合理的,因此也會報錯。為了解決這個問題,我們可以為表達式加上()使js能夠正確解析。

局限性:我們可以把類的原型進行重寫,在重寫的過程中很可能把之前constructor給覆蓋了,這樣檢測出來的結(jié)果就是不準確的

Object.prototype.toString.call() 原型鏈上的Object對象的toString方法

Object.prototype.toString的作用是返回當(dāng)前方法的執(zhí)行主體(方法中的this)所屬類的詳細信息,是最全面也是最常用的檢測數(shù)據(jù)類型的方式。

返回值的類型為string類型。


當(dāng)前名稱:js數(shù)據(jù)類型檢測總結(jié)
鏈接分享:http://weahome.cn/article/jhidde.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部