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