Я играл вокруг с массивами в JavaScript и не могу понять, почему это происходит:Javascript массива равен нулю, но сам не
console.log(0 == 0)
//true
console.log([] == 0)
//true
console.log(0 == [])
//true
console.log([] == [])
//false
console.log([] == ![])
// true
Пустой массив достаточно равен нулю как влево, так и вправо, но почему он не равен самому себе?
Я понимаю, что сравнение двух объектов не приведет true
, но почему они принуждают 0
(или falsy, которое не должно быть), если сравнивать их с 0
, а threated как объект, если сравнивать их к другому массиву?
http://stackoverflow.com/questions/30820611/javascript-arrays-cannot-equal-each-other – sinisake
Возможный дубликат [Почему два одинаковых объекта не равны друг другу?] (Http: // stackoverflow. com/questions/11704971/why-are-two-same-objects-not-equal-to-each-other) – baao
@sinisake Это объясняет, почему они не соответствуют друг другу, но факт, что они соответствуют '0', смущающий меня полностью – Randy