减法运算符如何触发数组到数字的转换?
How does subtraction operator trigger an array-to-number conversion?
这是我的代码的 2 个示例。第一个是:
console.log([4] + 10); //"410"
据我所知,加法运算符只能用于数字和字符串。因此,首先, [4]
应该转换为数字或字符串。尝试将操作数转换为原始数据类型时,valueOf()
或 toString()
运行。默认情况下,valueOf()
returns 一个数组,所以这个方法被忽略了。 toString()
被调用。它将复杂数据类型转换为字符串。这对我来说完全可以理解,但是...
第二个例子是怎么回事?
console.log(10 - [4]); //6
如果此方法默认 returns 数组,我不明白 valueOf()
如何将数组转换为数字。这里发生了什么?
它是这样的:
10 - [4]
10 - '4' // array to string
10 - 4 // implicit casting of all operands to number with minus operator
6 // result
这是我的代码的 2 个示例。第一个是:
console.log([4] + 10); //"410"
据我所知,加法运算符只能用于数字和字符串。因此,首先, [4]
应该转换为数字或字符串。尝试将操作数转换为原始数据类型时,valueOf()
或 toString()
运行。默认情况下,valueOf()
returns 一个数组,所以这个方法被忽略了。 toString()
被调用。它将复杂数据类型转换为字符串。这对我来说完全可以理解,但是...
第二个例子是怎么回事?
console.log(10 - [4]); //6
如果此方法默认 returns 数组,我不明白 valueOf()
如何将数组转换为数字。这里发生了什么?
它是这样的:
10 - [4]
10 - '4' // array to string
10 - 4 // implicit casting of all operands to number with minus operator
6 // result