Проверяет понимание приведения типов в JavaScript при использовании оператора сложения.
В JavaScript оператор + выполняет две разные операции: математическое сложение и конкатенацию строк. Выбор операции зависит от типов операндов. Если хотя бы один операнд является строкой, то оба преобразуются в строки и объединяются. В противном случае оба операнда преобразуются в числа и складываются.
console.log(1 + 2); // 3 (числовое сложение)
console.log('1' + 2); // '12' (конкатенация)
console.log(1 + '2'); // '12' (конкатенация)
console.log(true + false); // 1 (true=1, false=0)
console.log(null + 1); // 1 (null=0)
console.log(undefined + 1); // NaN (undefined=NaN)JavaScript сначала проверяет, есть ли строка среди операндов. Если да — все преобразуется в строки. Если нет — все преобразуется в числа. Это может приводить к неожиданным результатам, особенно с объектами, которые преобразуются через valueOf или toString.
Понимание неявного приведения типов важно для написания предсказуемого кода. Рекомендуется явно преобразовывать типы с помощью Number(), String() или Boolean(), чтобы избежать ошибок.