@evg_96

Почему массив равен не массиву?

Как в данном случае происходит преобразование?
[] == ![] // true

// В моем понимании было так: (но как оказалось я не прав)
// [] == ![] ---> [] == false ---> true == false ---> false
  • Вопрос задан
  • 1244 просмотра
Пригласить эксперта
Ответы на вопрос 4
Negwereth
@Negwereth
lvivcss.com.ua
Пустой массив преобразовывается в пустую строку. А та, в свою очередь - в false.
Ответ написан
@KnightForce
![] == false
[] при сравнении становится true
Выходит что true != false
А вообще даже [1] == [1] выдаст false два разных объекта (в js массив тоже объект).
Ответ написан
Комментировать
Decadal
@Decadal
[] == ![]

для первого [] неявно выполняется toString
для ![] выполняется приведение к boolean
по этой же причине:

[] == []
false
И еще немного магии:
"" == []
true
"" == ![]
true
Ответ написан
Krasnodar_etc
@Krasnodar_etc
fundraiseup
!![] == !![] // Вот так логичнее

Negwereth уже пояснил, почему )
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы