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

时间:2015-02-13 06:03:03

标签: javascript

为什么这个JavaScript声明:

console.log(1 +  + "2");

打印

3

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

3 个答案:

答案 0 :(得分:7)

字符串前面的

+-操作数会将其转换为数字。因此,此处+"2"将变为2,因此结果将为3

=> 1 + + "2"    // +"2" = 2
=> 1 +    2
=> 3

如果您在

之间使用-
=> 1 - - "2"   // -"2" = -2
=> 1 - - 2     // 1 - (-2)
=> 1 + 2
=> 3

所以,

     -"2" ==> -2
     +"2" ==>  2
 +"Hello" ==> NaN
 -"Hello" ==> NaN

答案 1 :(得分:1)

console.log(1 + "2")打印12,因为+充当连接运算符。

但是如果你试图打印console.log( + "2" ),你会得到输出为2因为它被输入为整数。

因此console.log( 1 + +"2" )会将结果显示为3

答案 2 :(得分:1)

关于

的具体输出
console.log(1 +  + "2");

在浏览器控制台上运行它。更好的问题是它为什么输出它的作用 -

console.log(1 +  + "2");
              ^

这是二进制+运算符,它将连接字符串或添加数字。

console.log(1 +  + "2");
                 ^

那个是一元+运算符,它将“2”转换为数字。

不要像这样创建JavaScript。这令人困惑。