为什么JavaScript中的“5” + 2 + 3和2 + 3 +“5”不同?
如果给我错误的结果。
<p>The result of adding "5" + 2 + 3</p>
<p id="demo"></p>
<script>
x = "5" + 2 + 3;
document.getElementById("demo").innerHTML = x;
</script>
<p> result of adding 2+3+"5"</p>
<p id="qwe"></p>
<script>
y = 2 + 3 + "5";
document.getElementById("qwe").innerHTML = y;
</script>
最佳答案
+
从左到右求值,所以
"5" + 2+3
相当于
("5" + 2) + 3
另一个:
2+3+ "5"
等效于:
(2 + 3) + "5"
当两个数字一起用
+
d编码时,将它们相加,因此结果是一个数字。但是,如果+
的任一侧是字符串,则将两个表达式连接起来而不是添加。所以("5" + 2) + 3
// results in
'52' + 3
'523'
(2 + 3) + "5"
// results in
5 + '5'
55