如何将数组对象类型与数值相减?再者,两者相加,为什么会出现类型转换呢?
示例:
[10] - 7 // returns 3
[10] + 7 // returns "107"
我知道当添加 7 时,数组和数字 7 被转换为字符串。我不明白为什么第一个减法例子有效。我认为这两个工作的方式是:
数组对象类型(-)或(+)数值类型
我希望这两个示例都返回 NaN
。
此外,“+”将类型转换以与字符串值连接。 http://ecma262-5.com/ELS5_HTML.htm#Section_11.6.1
如果运行:
{} + 1 // returns 1
{} -1 // returns -1
不发生类型转换。
数组对象似乎被用作数字。
最佳答案
这是由于 Type Coercion 。
基本上,当您使用 +
运算符时,会有 certain set of rules定义如何转换类型以及新类型中的结果值。
关于javascript - 类型转换在数组中添加和减去数字索引值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26811762/