Как в javascript работает оператор + сложение, суммирование, объединение, конкатенация
В javascript только оператор + хитро работает, если складывать число со строкой. + всегда приводит числа к строкам, ЕСЛИ вы складываете два разных типа.
Пример:
3 + "4" ="34" (строка 34, а не число 7)
"4" + 3 = "43"
С остальными операторами, такими как - * / в JS такой магии нет. Только с "плюсом". Например:
3 * "4" = 12
10 - "5" = 5
Оператор + обладает левосторонней ассоциативностью, поэтому след. выражение выдаст:
order = 1 + 2 + " three" получим "3 three", т.к. обработка выражения началась слева направа, НО:
console.log ("Res:" + 10/2) выдаст Res:5, т.к. сначала выполняются умножение и деление, а потом + конкатенировал обе части в строку.
Еще примеры с плюсом:
(1+2) + " three" выдаст "3 three"
1 + (2 +" three") выдаст "12 three"
true + " false" выдаст ""true false"
Чтобы сложить число со строкой и JS явно преобразовал строку в число использовать функцию Number:
3 + Number ("4") = 7
Если Number не смог преобразовать в число, он вернет NaN, а 3 + NaN выдаст NaN.
Оставить свой ответ: