en.javascript.info/1-js/6-objects-more/2-object-conversion/1-array-equals-string/solution.md
2015-01-14 10:23:45 +03:00

783 B
Raw Blame History

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

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

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

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

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