在JavaScript中,我们知道,两个数值(number类型)相加肯定会返回他们的和(例如 1+2
=3)。但如果是其中一个为字符串时(例如 1+"2"
=?)结果却不是3,而是 "12"
,注意是有双引号包裹的字符串"12"。
案例:
/**
* 计算a与b的和
**/
function sum(a, b) {
return a + b;
}
sum(1, 2); //结果为 3
sum(1, "2"); //结果为 "12"
正如上述所说,第一个结果是 3
,第二个结果是 "12"
。
在这个例子中,JavaScript 为了使 sum(1, "2")
返回一个有意义的值,在数值和字符串相加时,把数值1(number类型)转为了字符串,所以此时 1+"2"
的操作等同于 "1"+"2"
,最终返回字符串 "12"