我一直在调试这段代码(链接)。不知道为什么,一个函数被检测为抽象数组,因为它有一个长度属性。虽然长度为0,但这个问题还是很奇怪的。
var test_set = [null,
undefined,
NaN,
true,
false,
1,
'a',
{test:'test'},
[0],
function(){},
/test/
];
var index,
key,
test;
function isArrayAbstract (obj) {
return (obj != null) && (obj.length === +obj.length);
};
for(index = 0; index < test_set.length; index++){
test = isArrayAbstract(test_set[index]);
console.log('Mark | ' + test_set[index]);
console.log(test);
}