javascript中+ =和= +之间的差异

use*_*297 3 javascript

我想知道为什么运行第三行代码后结果a是5?

a = 10;
b = 5;
a =+ b;
Run Code Online (Sandbox Code Playgroud)

Tom*_*icz 25

尴尬的格式:

a =+ b;
Run Code Online (Sandbox Code Playgroud)

相当于:

a = +b;
Run Code Online (Sandbox Code Playgroud)

并且+b只是一种铸造b到数字的奇特方式,就像这里:

var str = "123";
var num = +str;
Run Code Online (Sandbox Code Playgroud)

你可能想要:

a += b;
Run Code Online (Sandbox Code Playgroud)

相当于:

a = a + b;
Run Code Online (Sandbox Code Playgroud)

  • ...而 a += b 是 a = a + b 的快捷方式,这可能就是您想要的 (3认同)
  • @fritzfromlondon:感谢您指出这一点,我允许自己将您的评论添加到答案中以更好地脱颖而出 (2认同)
  • `a = +b;` 中的 `+` 称为*一元 `+` 运算符*:http://es5.github.com/#x11.4.6 (2认同)