1
任何人都可以解釋RegExp.prototype.exec
的結果是如何產生的嗎?Array中的非索引屬性
如果你嘗試類似的東西:/d/g.exec("d is a character, dd")
結果數組結構如下解釋:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/exec
我的問題是,如何陣列已非indexeed像index
和input
屬性?
通常情況下,數組是一個由整數索引的集合([0...n]
);
var re = /d/g;
var str = "domains are always domains";
var result = re.exec(str);
console.log("typeof result", typeof result);
console.log("Array.isArray(result)", Array.isArray(result));
console.log("result.length", result.length);
console.log("result", result);
我不認爲這是,或者至少,這不是全部。例如,什麼'Array.isArray(fakeArr)'返回? – Hitmands
'isArray'將返回'false',因爲它檢查對象是否從'Array'繼承,在這種情況下它顯然不會。這就是爲什麼我說* array-like *。還有其他類似數組的對象,例如['arguments'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments)(正式記錄爲*陣列狀*)。這意味着你可以像數組一樣迭代它('for(var i = 0; i
deceze
是的,這確實就是它的全部。數組是一個普通對象+一些額外的屬性和方法。 – deceze