JavaScript: результат сложения значений различных типов
прибавляем к строке число и логическое значение в JavaScript
Итак, перед нами выражение, в котором с помощью операторов + и - нужно выполнить манипуляции со значениями различных типов:
let x = '2' + 3 - true + '1';
Каков будет результат и, главное, почему?
Для того, чтобы правильно ответить на поставленный вопрос, нужно знать порядок вычисления результатов выражений и основные правила преобразования типов данных в JavaScript.
Бинарные операторы + и - имеют одинаковый приоритет, поэтому x будет получен в результате последовательного выполнения вычислений слева направо без каких-либо исключений.
Сначала мы складываем строку "2" и число 3. Так как мы пытаемся объединить строку с числом, оператор + выполнит конкатенацию этих значений, преобразовав число 3 в строку "3". Полученный результат
будет строкой "23".
Во втором действии, мы вычтем из строки "23" логическое значение true. Для того, чтобы осуществить это действие, JavaScript преобразует строку "23" в число 23, а true превратится в 1. В результате вычитания полученных значений будет получено число 22.
Наконец, мы прибавляем к числу 22 строку "1". Логика JavaScript будет такой же, как и в первом действии: так как одно из значений является строкой, левая часть выражения будет преобразована в "22", а оператор + в очередной раз выполнит объединение строк с результатом "221".
let x = '2' + 3 - true + '1';
console.log(x);
// 221
Спасибо за внимание.
