var a = "ab";
var b = "ab";
a+=1; // "ab1"
b++; // "NaN"

(在chrome的V8上测试)

有人可以根据++算术运算符和带参数+=1赋值运算符的内部原子操作来解释结果为何不同的原因

最佳答案

++转换为数字,然后递增,并将带有字符串的+=串联在一起。

从规范:



对于a+=1情况,如果您将数字添加到字符串中,或​​者相反,则将数字周围的数字转换为字符串:

关于Javascript++与+ = 1,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4397917/

10-13 02:16