Консоль выведет строку «33». Оператор + при наличии строкового операнда выполняет конкатенацию, поэтому число 3 преобразуется в строку.
Что напечатает консоль в примере №14
Консоль выведет строку «33». Оператор + при наличии строкового операнда выполняет конкатенацию, поэтому число 3 преобразуется в строку.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Определите, какой результат появится в консоли при выполнении следующего кода:
(function foo() {
let strNum = "3";
let num = 3;
console.log(strNum + num);
})();
Ответ
Консоль выведет строку «33». Оператор + при наличии строкового операнда выполняет конкатенацию, поэтому число 3 преобразуется в строку.
IIFE только создаёт локальную область и сразу выполняет функцию; на правила оператора + она не влияет. Тип strNum — string, тип num — number.
Чтобы получить число 6, нужно явно преобразовать первый операнд: Number(strNum) + num. Унарный плюс +strNum также даёт число для этой строки, но для произвольного пользовательского ввода преобразование может вернуть NaN. Внешний вид вывода консоли не всегда показывает кавычки, поэтому тип проверяют через typeof.