咱們如何判斷一個變量是否爲數組類型呢? 今天來給你們介紹七種方式,別走開, 這確定會被問到的~繼續往下看吧javascript
首先先告訴大家, typeof 是沒法判斷一個變量是否爲數組類型的,咱們來看一下例子:java
let arr = [1, 2, 3] console.log(typeof arr) // object 最後輸出的是object對象
使用 instanceof 運算符, 該運算符左邊是咱們想要判斷的變量, 右邊則是咱們想要判斷的對象的類, 例如:web
let arr = [1, 2, 3] console.log(arr instanceof Array) // true 返回true,說明變量arr是數組類型
利用構造函數來判斷他的原型是否爲Array, 用法: 變量.constructor === 變量類型
面試
let arr = [1, 2, 3] console.log(arr.constructor === Array) // true 返回true,說明變量arr是數組類型
第三種方法利用的一個專門的方法 isArray(), 用法:Array.isArray(變量)
,返回true,則說明該變量是數組類型;反之,說明該變量不是數組類型數組
let arr = [1, 2, 3] console.log(Array.isArray(arr)) // true 返回true,說明變量arr是數組類型
第四種方法是調用Object.prototype.toString.call()
,返回true,則說明該變量是數組類型;反之,說明該變量不是數組類型svg
let arr = [1, 2, 3] console.log(Object.prototype.toString.call(arr) === '[object Array]') // true 返回true,說明變量arr是數組類型
第五種方式是經過對象的原型方式來判斷,直接來看例子函數
let arr = [1, 2, 3] console.log(arr.__proto__ === Array.prototype) // true 返回true,說明變量arr是數組類型
第六種方式是經過 Object.getPrototypeOf()
來判斷是否爲數組類型,例如spa
let arr = [1, 2, 3] console.log(Object.getPrototypeOf(arr) === Array.prototype) // true 返回true,說明變量arr是數組類型
第七種方式是經過 isPrototypeOf()
方法來判斷是否爲數組類型,例如prototype
let arr = [1, 2, 3] console.log(Array.prototype.isPrototypeOf(arr)) // true 返回true,說明變量arr是數組類型
當你面試中被問到如何判斷一個變量是否爲數組類型的時候,你就將這七種方式脫口而出吧, 必定會讓面試官大吃一斤的~code