在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"