2017-12-26

js中判斷數(shù)據(jù)類(lèi)型的幾種方法(二)

在上一篇介紹了可以用typeof和toString方法判斷一個(gè)給定的變量的數(shù)據(jù)類(lèi)型的基礎(chǔ)上,今天我們來(lái)看看如何用另外兩種方法constructor、instanceof來(lái)進(jìn)行類(lèi)型的判斷。

一.constructor

1.constructor屬性

js中處處皆對(duì)象,每個(gè)對(duì)象身上都會(huì)有這個(gè)屬性,默認(rèn)指向該對(duì)象對(duì)應(yīng)的構(gòu)造函數(shù),這個(gè)屬性并不是放在對(duì)象身上,而是放在其對(duì)應(yīng)的原型(_proto_)對(duì)象身上。

圖1.1.1
圖1.1.2

2.constructor的應(yīng)用

格式:obj.constructor == Classes;

返回值:false,true

2.1 判斷數(shù)據(jù)類(lèi)型

圖1.2.1.1
圖1.2.1.2
圖1.2.1.3
圖1.2.1.4
圖1.2.1.5
圖1.2.1.6

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

圖1.2.2.1
圖1.2.2.2

3.constructor判斷時(shí)存在的問(wèn)題

construction的值可以設(shè)置改變,所以在使用constructor屬性做判斷的過(guò)程中要尤其注意constructor值的變化。

3.1 constructor值變化情景一

圖1.3.1.1
圖1.3.1.2

3.2 constructor變化情景二

圖1.3.2.1
圖1.3.2.2

彌補(bǔ)措施:

圖1.3.2.3
圖1.3.2.4

3.2 constructor變化情景三

圖1.3.3.1
圖1.3.3.2

彌補(bǔ)措施;

圖1.3.3.3
圖1.3.3.4

二.instanceof運(yùn)算符

instanceof 是二元運(yùn)算符,用來(lái)查找對(duì)象與其構(gòu)造函數(shù)在原型鏈上有沒(méi)有關(guān)系。

格式:對(duì)象? ?instanceof? 構(gòu)造函數(shù);

返回值:true、false

1.判斷數(shù)據(jù)類(lèi)型

圖2.1.1
圖2.1.2

2.構(gòu)造函數(shù)

圖2.2.1
圖2.2.2

3.總結(jié)

A instance B,用代碼表示,其判斷過(guò)程如下:

圖3.1
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容