为什么这个JavaScript声明:
console.log(1 + + "2");
打印
3
作为输出?我不确定为什么打印这个 - 我期待" 12"。
答案 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。这令人困惑。