判斷javascript的數據類型

1. typeof

typeof 操作符返回變量或表達式的類型。

語法: typeof arr;

這種數據類型檢測只對簡單數據類型適用,對數組和對象不實用.

2. instanceof

instanceof運算符用來判斷一個構造函數的prototype屬性所指向的對象是否存在另外一個要檢測對象的原型鏈上

語法: obj instanceof Object;

這種方式對檢測對象的實例比較好用,但是還是區分不了數組和對象.

3. constructor

constructor 屬性返回對創建此對象的數組函數的引用。

語法: object.constructor

'str'.constructor === String

4. Object.prototype.toString.apply()或者Object.prototype.toString.call()

使用toString() 方法返回一個表示該對象的字符串,每個對象都有一個 toString() 方法,toString() 方法被每個 Object 對象繼承。爲了每個對象都能通過 Object.prototype.toString() 來檢測,需要以 Function.prototype.call() 或者 Function.prototype.apply() 的形式來調用,傳遞要檢查的對象作爲第一個參數,稱爲 thisArg

語法: Object.prototype.toString.apply(thisArg) 或者 Object.prototype.toString.call(var)

let arr = [];
Object.prototype.toString.apply(arr); // "[object Array]"
Object.prototype.toString.call(arr); // "[object Array]"
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章