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
Спасибо за внимание.