@umberford

Почему в Javascript выражение false+[] вернет строку 'false'?

Не понимаю логику JS. Ведь у пустого массива есть численное представление: +[] вернет 0. А тут произошла конкатенация, необходимым условием для которой является один из аргументов - строка. Так вот, почему JS в данном случае представляет пустой массив как строку, а не число?
  • Вопрос задан
  • 204 просмотра
Решения вопроса 2
0xD34F
@0xD34F Куратор тега JavaScript
Ведь у пустого массива есть численное представление: +[] вернет 0.

И что с того? В выражении false+[] нет преобразования массива в число. Есть сложение - массив преобразовывается в строку, false тоже. Если интересуют детали - можете ознакомится со спецификацией.
Ответ написан
coderisimo
@coderisimo Куратор тега JavaScript
При сложении если хотя бы один операнд это ОБЪЕКТ , он преобразовывается к примитиву (строка , бул или число).
При преобразовании массива к примитиву используется join , т.е получается строка. Пустой массив - пустая строка.
Ну , и false + '' = 'false' ;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы