Вернуться к уроку

['x'] == 'x'

важность: 5

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

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

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

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

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

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

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