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]); // true
Array.isArray({ foo: 123 }); // false
Array.isArray("foobar"); // false
Array.isArray(undefined); // false
èªæ³
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
// 䏿¹é½åå³ true
Array.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);
// 䏿¹é½åå³ false
Array.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 vs isArray
ç¶æª¢æ¥ 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; // false
Polyfill
妿 Array.isArray() ä¸å卿¼ä½ çç°å¢ï¼å¨å
¶ä»ç¨å¼ç¢¼åå·è¡ä¸åç¨å¼ç¢¼å¯å»ºç½® Array.isArray()ã
js
if (!Array.isArray) {
Array.isArray = function (arg) {
return Object.prototype.toString.call(arg) === "[object Array]";
};
}
è¦ç¯
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-array.isarray> |