Приношу извенения за засорение форума элементарным и отчасти глупым вопросом.
Вообщем наткнулся на такую задачку в учебнике
alert( [] == [] ); // false
alert( [] == ![] ); // true
Вопрос - почему так?
В учебнике говорится, мол, разные объекты. Это, впринцепе,логично, но у массива ведь есть строковое преобразование и почему тогда код выше не эквивалентен этому?
alert( '' == '' ); // false
Ведь можно сказать, мол, это разные строки,
НО результат то будет
true.
Вот набросал код, который демонстрирует эту странность.
https://codepen.io/CitizenOne/pen/vWLQjg
У массива ведь всегда при попытке его выведения в какой-либо визуальный поток вызывается метод
toString => получается строка при преобразовании, и при сравнении по идее тоже.
Спасибо всем огромное!