Почему 0 == [] дает true?
Мне непонятно почему:
console.log(0 == [])
показывает true, а:
console.log('0' == [])
говорит false, что это за мистика?
Ответы (1 шт):
Автор решения: Vasily
→ Ссылка
Все дело в привидении типов.
В случае когда ноль – это строка:
console.log("0" == [])
// "0" == ""
// false
массив будет приведен к строке, т.е будут сравниваться "0" и "", а поскольку одна строка пустая, а вторая нет, то мы получаем false.
В случае когда 0 – это число, массив так же будет приведен сначала к строке и далее уже эта строка – к 0, поэтому мы получим true:
console.log(0 == [])
// 0 == ""
// 0 == 0
// true