【问题标题】:Why is "5" + 2+3 and 2+3+ "5" different in JavaScript?为什么 JavaScript 中的 "5" + 2+3 和 2+3+ "5" 不同?
【发布时间】:2020-08-05 11:19:12
【问题描述】:

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

【问题讨论】:

标签: javascript html jquery


【解决方案1】:

+ 从左到右求值,所以

"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

【讨论】:

    猜你喜欢
    • 2012-02-04
    • 1970-01-01
    • 1970-01-01
    • 2015-12-26
    • 1970-01-01
    • 2021-09-04
    • 1970-01-01
    • 2015-07-26
    • 2013-11-25
    相关资源
    最近更新 更多