JS 如何判斷一個(gè)數(shù)據(jù)是不是數(shù)組

作者:辰風(fēng)沐陽 閱讀:1469 發(fā)布時(shí)間:2022-09-03 上次更新:2023-02-17

1. 前言


這是一道高頻的前端面試題: JS 如何判斷一個(gè)變量是否為數(shù)組 ?

給定兩個(gè)變量,用于測(cè)試判斷變量是否為數(shù)組的方法是否正確

對(duì)于某些新手來說,首先會(huì)想到使用 typeof 關(guān)鍵字獲取變量的數(shù)據(jù)類型,這是不可行的。在 JS 中,數(shù)組也是 object。

const arr = [1, 2, 3]
const user = { name: 'liang' }

2. instanceof


使用 instanceof 運(yùn)算符,運(yùn)算符左邊是要判斷的變量,右邊是 Array

// arr 是數(shù)組返回 true
// arr 不是數(shù)組返回 false
console.log(arr instanceof Array);

3. Array.isArray() 方法


ES5 將 Array.isArray() 引入 JavaScript,目的就是準(zhǔn)確的檢測(cè)一個(gè)值是否為數(shù)組

Array.isArray(arr)

4. 對(duì)象的 constructor 屬性


利用構(gòu)造函數(shù)判斷它的原型是否為 Array

console.log(arr.constructor === Array);

5. Object.prototype.toString.call()


調(diào)用 Object.prototype.toString.call() 方法,判斷返回值

Object.prototype.toString.call(arr) === '[object Array]'

標(biāo)簽: JavaScript 面試題