true
[''] == 0 // true
Ок, если [''] == 0 и [] == 0, то [''] == [] - true. Но
[''] == [] // false. Почему?
Получил ответ, мол, мы не компиляторы такие задачки решать. Хотелось задать вопрос: "А если спросят сколько будет 2 * 2, ответите, что вы не калькуляторы?"
Но ничего писать не стал. Только лишний раз убедился, что поголовное количество потенциальных джунов - это нытики, которые вечно канючат, что злые работодатели не берут их на борт, но сами для этого не прочитали даже первых глав книги по JS, в которых подробно приведение типов разбирается.
Оператор равенства не транзитивен ыыыыы
Js автоматом использует приведение к общим типам, поэтому пустой массив в сравнении с нулем дает тру, также как и пустая строка, но когда сравнивается два массива, то у них типы одинаковые, но массив с пустой строкой не равно просто пустому массиву
Потому что формулировка фиговая в вопросе. Вот по-этому так и отвечают - так как это бесит, и не только джунов.
Обсуждают сегодня