为什么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

10-06 08:12