Мастер-классы по Javascript Екатеринбург Ростов-на-Дону Москва Узнать больше...
Содержание (скрыть) Содержание (показать)

['x'] == 'x'

Почему результат true ?

alert( ['x'] == 'x' );

Решение
Решение

Если с одной стороны — объект, а с другой — нет, то сначала приводится объект.

В данном случае сравнение означает численное приведение. У массивов нет valueOf, поэтому вызывается toString, который возвращает список элементов через запятую.

В данном случае, элемент только один - он и возвращается. Так что ['x'] становится 'x'. Получилось 'x' == 'x', верно.

P.S.
По той же причине верны равенства:

alert( ['x','y'] == 'x,y' ); // true
alert( [] == '' ); // true

#232
Наверх

Реклама

Нашли опечатку?

Нашли опечатку на сайте? Что-то кажется странным?
Выделите соответствующий текст и нажмите Ctrl+Enter!

Последние Комментарии

Помоги другим!

Помоги другим узнать о хорошей статье!