[TOC] #### 1. 前言 --- 這是一道高頻的前端面試題: JS 如何判斷一個變量是否為數(shù)組 ? 給定兩個變量,用于測試判斷變量是否為數(shù)組的方法是否正確 對于某些新手來說,首先會想到使用 `typeof` 關鍵字獲取變量的數(shù)據(jù)類型,這是不可行的。在 JS 中,數(shù)組也是 object。 ```javascript const arr = [1, 2, 3] const user = { name: 'liang' } ``` #### 2. instanceof --- 使用 instanceof 運算符,運算符左邊是要判斷的變量,右邊是 Array ```javascript // arr 是數(shù)組返回 true // arr 不是數(shù)組返回 false console.log(arr instanceof Array); ``` #### 3. Array.isArray() 方法 --- ES5 將 Array.isArray() 引入 JavaScript,目的就是準確的檢測一個值是否為數(shù)組 ``` Array.isArray(arr) ``` #### 4. 對象的 constructor 屬性 --- 利用構(gòu)造函數(shù)判斷它的原型是否為 Array ```javascript console.log(arr.constructor === Array); ``` #### 5. Object.prototype.toString.call() --- 調(diào)用 `Object.prototype.toString.call()` 方法,判斷返回值 ```javascript Object.prototype.toString.call(arr) === '[object Array]' ```