此頁面由社群從英文翻譯而來。了解更多並加入 MDN Web Docs 社群。
Array.isArray()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.
Array.isArray() 函式會檢查傳入的值是否為一個Array。
js
Array.isArray([1, 2, 3]); // trueArray.isArray({ foo: 123 }); // falseArray.isArray("foobar"); // falseArray.isArray(undefined); // falseIn this article
語法
js
Array.isArray(obj)參數
obj要檢查的物件。
回傳值
若物件為Array 回傳true;否則回傳false。
描述
檢查傳入的物件是否為陣列(Array),如果是便回傳true,否則回傳false。
更多細節請參考「Determining with absolute accuracy whether or not a JavaScript object is an array」。
範例
js
// 下方都回傳 trueArray.isArray([]);Array.isArray([1]);Array.isArray(new Array());Array.isArray(new Array("a", "b", "c", "d"));Array.isArray(new Array(3));// 小細節:Array.prototype 本身是陣列:Array.isArray(Array.prototype);// 下方都回傳 falseArray.isArray();Array.isArray({});Array.isArray(null);Array.isArray(undefined);Array.isArray(17);Array.isArray("Array");Array.isArray(true);Array.isArray(false);Array.isArray({ __proto__: Array.prototype });instanceof vsisArray
當檢查Array 實例時,Array.isArray 相較於instanceof 更加推薦,因為它可以穿透iframes。
js
var iframe = document.createElement("iframe");document.body.appendChild(iframe);xArray = window.frames[window.frames.length - 1].Array;var arr = new xArray(1, 2, 3); // [1,2,3]// 正確地檢查陣列型態Array.isArray(arr); // true// 有害地,因為它不能在 iframes 之間正常運作arr instanceof Array; // falsePolyfill
如果Array.isArray() 不存在於你的環境,在其他程式碼前執行下列程式碼可建置Array.isArray()。
js
if (!Array.isArray) { Array.isArray = function (arg) { return Object.prototype.toString.call(arg) === "[object Array]"; };}規範
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-array.isarray> |