更新时间:2023-02-23 09:33:36
你所说的是一元加号。它与字符串连接或添加使用的加号不同。
如果要使用一元加号进行转换并将其添加到之前的值,需要加倍努力。
> 3 + 4 +5
75
> 3 + 4 + +5
12
编辑:
您需要了解操作顺序:
+
和 -
具有相同的优先级并与左侧相关联:
> 4 - 3 + 5
(4 - 3)+ 5
1 + 5
$
+
再次与左边相关:
> 3 + 4 +5
(3 + 4)+5
7 +5
75
一元运算符通常比二元运算符具有更强的优先级:
> 3 + 4 + +5
(3 + 4)+(+5)
7 +(+5)
7 + 5
12
I was reading the re-introduction to JavaScript on MDN and in the section Numbers it said that you can convert a string to a number simply by adding a plus operator in front of it.
For example:
+"42" which would yield the number output of 42.
But further along in the section about Operators it says that by adding a string "something" to any number you can convert that number to a string. They also provide the following example which confused me:
"3" + 4 + 5 would presumably yield a string of 345 in the output, because numbers 4 and 5 would also be converted to strings.
However, wouldn't 3 + 4 + "5" yield a number of 12 instead of a string 75 as was stated in their example?
In this second example in the section about operators wouldn't the + operator which is standing in front of a string "5" convert that string into number 5 and then add everything up to equal 12?
What you are talking about is a unary plus. It is different than the plus that is used with string concatenation or addition.
If you want to use a unary plus to convert and have it added to the previous value, you need to double up on it.
> 3 + 4 + "5"
"75"
> 3 + 4 + +"5"
12
Edit:
You need to learn about order of operations:
+
and -
have the same precedence and are associated to the left:
> 4 - 3 + 5
(4 - 3) + 5
1 + 5
6
+
associating to the left again:
> 3 + 4 + "5"
(3 + 4) + "5"
7 + "5"
75
unary operators normally have stronger precedence than binary operators:
> 3 + 4 + +"5"
(3 + 4) + (+"5")
7 + (+"5")
7 + 5
12