Каков результат выполнения выражения ('b' + 'a' + + 'a' + 'a').toLowerCase() в JavaScript? Выберите один правильный вариант ответа.
Подробное объяснение
Выражение последовательно выполняет операции конкатенации строк и унарного преобразования. Сначала 'b' + 'a' даёт строку 'ba'. Затем унарный плюс +'a' пытается преобразовать строку 'a' в число, что возвращает NaN. При конкатенации 'ba' + NaN получается 'baNaN', так как NaN преобразуется в строку 'NaN'. Добавление последней 'a' даёт 'baNaNa', а метод .toLowerCase() преобразует это в 'banana'.
Часто задаваемые вопросы (FAQ)
1
Что делает унарный плюс в JavaScript?
Унарный плюс пытается преобразовать операнд в число. Если преобразование невозможно (как со строкой 'a'), возвращается NaN.
2
Как работает конкатенация строк с другими типами данных?
При конкатенации строк с другими типами (числами, NaN, undefined) эти значения автоматически преобразуются в строки перед объединением.
3
Что возвращает метод .toLowerCase()?
Метод .toLowerCase() возвращает новую строку, в которой все символы преобразованы в нижний регистр, не изменяя исходную строку.
Типичные ошибки
1
Предположение, что +'a' вернёт 0 или другое числовое значение
Строка 'a' не может быть преобразована в корректное число, поэтому результатом будет NaN, а не 0 или другое числовое значение.
2
Игнорирование приоритета операторов
Унарный плюс имеет более высокий приоритет, чем бинарный оператор сложения, поэтому сначала выполняется +'a', а затем конкатенация.
3
Забывание о преобразовании NaN в строку
При конкатенации NaN автоматически преобразуется в строку 'NaN', а не остаётся как специальное числовое значение.