什么会打印console.log(1+ +"2")

Siv*_*iva -1 javascript

为什么这个JavaScript声明:

console.log(1 +  + "2");
Run Code Online (Sandbox Code Playgroud)

打印

3
Run Code Online (Sandbox Code Playgroud)

作为输出?我不确定为什么打印这个 - 我期待"12".

Mr_*_*een 7

+-字符串前面的操作数将其转换为数字.所以这+"2"将成为2结果3.

=> 1 + + "2"    // +"2" = 2
=> 1 +    2
=> 3
Run Code Online (Sandbox Code Playgroud)

如果你-喜欢之间使用

=> 1 - - "2"   // -"2" = -2
=> 1 - - 2     // 1 - (-2)
=> 1 + 2
=> 3
Run Code Online (Sandbox Code Playgroud)

所以,

     -"2" ==> -2
     +"2" ==>  2
 +"Hello" ==> NaN
 -"Hello" ==> NaN
Run Code Online (Sandbox Code Playgroud)