Почему "5" + 2 + 3 и 2 + 3 + "5" отличаются в JavaScript? - PullRequest
2 голосов
/ 22 апреля 2020

Почему "5" + 2 + 3 и 2 + 3 + "5" отличаются в JavaScript?

Это, если дает неправильный результат.

<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>

1 Ответ

8 голосов
/ 22 апреля 2020

+ оценивается слева направо, поэтому

"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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...