js 如何判斷類型 2021-03-25

js 中 數(shù)據(jù)類型分為基本類型與引用類型。
JS的基本類型共有七種:bigInt(bigInt是一種內(nèi)置對象,是處symbol外的第二個內(nèi)置類型)、number、string、boolen、symbol、undefined、null。引用類型有對象(object)包括基本的對象、函數(shù)(Function)、數(shù)組(Array)和內(nèi)置對象(Data等)。

方法一? ? 判斷基礎(chǔ)類型 可以用typeof 方式,如? typeof 2? 返回number
方法二? ? 判斷引用類型 需要用到 Object.prototype.toString.call(xxx)的形式,返回“[object 類型]'的形式。
如下:
Object.prototype.toString.call({a:1})// "[object Object]"
Object.prototype.toString.call([1,2])// "[object Array]"
Object.prototype.toString.call(newDate)// "[object Date]"
Object.prototype.toString.call(function(){})// "[object Function]"
Object.prototype.toString.call(arguments)// "[object Arguments]"? ?//arguments 為函數(shù)的參數(shù)對象

ps: 為什么不直接調(diào)用toString方法,而是接用Object的原型對象prototype的toString
因為 只有object對象形式才能返回“[object Object]'的形式,
其它,例如[1,2,4].toString() 返回‘1,2,4'這樣的字符串,
const f = function() {}?
?f.toString()? // 返回"function() {}"
方法三、obj instanceof Object?,可以左邊放你要判斷的內(nèi)容,右邊放類型來進(jìn)行JS類型判斷,只能用來判斷復(fù)雜數(shù)據(jù)類型,因為instanceof 是用于檢測構(gòu)造函數(shù)(右邊)的?prototype?屬性是否出現(xiàn)在某個實例對象(左邊)的原型鏈上。

[1,2]? instanceof? ?Array // true
(function(){})? instanceof? ?Function? // true
({a:1})? instanceof? Object? // true
(newDate)? instanceof? ?Date// true

obj instanceof Object方法也可以判斷內(nèi)置對象。

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

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