为什么在Javascript中有一个数字的数组是一个数字?

时间:2014-11-24 13:08:50

标签: javascript arrays nan

我发现一个空数组或一个只有一个数字的ar是一个数字。

这个主题并不是我认为的这个特例的解释:Why does isNaN(" ") equal false

document.write( isNaN([1,2,3]) ); // true
document.write( isNaN([1,2,'abc']) ); // true
document.write( isNaN(['abc']) ); // true

// maybe explained through the above link
document.write( isNaN([]) ); // false

// but...
document.write( isNaN([1]) ); // false
document.write( isNaN([-3]) ); // false
document.write( isNaN([1234567]) ); // false
document.write( isNaN([-1.234]) ); // false
document.write( isNaN([[123]]) ); // false
document.write( isNaN(['1']) ); // false

谁能告诉我为什么它有意义?

1 个答案:

答案 0 :(得分:3)

isNaN将其值强加给一个数字。 (See MDN

因为数组的字符串表示形式是与逗号连接的所有项目。由于逗号,数字表示为NaN

但如果只有一个项目,因此没有逗号,则可以将其转换为数字。