我对 javascript 中的类型转换感到困惑。
var temp = "111"
temp = temp + 0 // temp is "1110" now
temp = temp - 0 // temp is number , 111
temp = "1110" - 0 // temp is number 1110
我很好奇是什么导致了这种两方面的差异。
抱歉,我忘记了赋值导致结果异常。
最佳答案
我对此表示怀疑
temp = temp - 0 // temp is number , 111
产生您在那里提到的结果。请参阅http://jsbin.com/faquvobo/1/edit?js,output
您有一个观察错误(也许您实际上使用了 temp = 0 + temp;
)。
一般说明:
+
运算符已重载,而 -
运算符则未重载。
如果使用 +
运算符且其中一个操作数是字符串,则该操作数将转换为字符串并执行字符串串联(而不是加法)。
-
运算符仅针对数字定义,因此两个操作数都会先转换为数字,然后执行减法。
关于javascript - JS 字符串与数字之间的类型转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25197207/