javascript中判斷對(duì)象類型的方法

在js中,有5中基本數(shù)據(jù)類型和1種復(fù)雜數(shù)據(jù)類型
基本數(shù)據(jù)類型:Underfined,Null,Boolean,String,Number
復(fù)雜數(shù)據(jù)類型:Object,包含Array,Function,Data...

1、使用typeof檢測(cè)
可以檢測(cè):number,string,boolean,function,undefined
不可以檢測(cè): array,json,null,date,regex,error只能被檢測(cè)出object,

2、使用instanceof檢測(cè)
可以檢測(cè): Array,Object,Function,Date,RegExp,Error,
不可以檢測(cè)基本數(shù)據(jù)類型:Number,String,Boolean,Undefined, Null
但是使用這種方式創(chuàng)建變量就可以
const num = new Number(123);
const str = new String('1234');
const bool = new Boolean(false);

3、使用constructor檢測(cè)
constructor是原型對(duì)象上的屬性,指向構(gòu)造函數(shù)。

const num = 123;
num.constructor => function Number() {[native code]}
所以可以使用 num.constructor === Number
不可以檢測(cè):undefined,null
缺點(diǎn): 實(shí)例的constructor屬性可以被修改,會(huì)導(dǎo)致檢測(cè)出的結(jié)果不正確

4、使用Object.prototype.toString.call
使用方式:
Object.prototype.toString.call(num) => '[object Number]'
...
可檢測(cè)所有數(shù)據(jù)類型
所以可以使用Object.prototype.toString.call(num) === '[object Number]'

?著作權(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)容