JavaScript判斷變數型別的四種方法

Du9191發表於2023-03-04

typeof(根據二進位制判斷):

常用於判斷基礎資料型別,對於引用資料型別除了function 返回 ‘function’,其餘都返回 ‘object’ (typeof null === object)

instanceof:

主要用於區分引用資料型別,檢測建構函式的 prototype 屬性是否出現在某個例項物件的 原型鏈 上

語法:object(某個例項物件) instenceof  constructor(建構函式)

不適用於簡單資料型別的檢測,檢測過程繁瑣且無法檢測簡單資料型別中的 undefined、null、symbol

Object.prototype.toString.call():

適用於所有的型別檢測,且檢測精準

語法:Object.prototype.toString.call(資料) ;返回的是該資料型別的字串。

原理:Object.prototype.toString 表示一個返回物件型別的字串,call() 方法可以改變this的指向,把Object.prototype.toString方法指向不同的資料型別上, 返回不同的結果

constructor(用於引用資料型別):

用於檢測引用資料型別,檢測方法是獲取例項的建構函式,判斷和某個類是否相同,如果相同就說明該資料是符合那個資料型別的

這種方法不會把原型鏈上的其他類也加入進來,避免了原型鏈的干擾

引用:https://www.nowcoder.com/exam/interview/detail?questionClassifyId=0&questionId=2412354&questionJobId=156&type=1

相關文章