Просто было бы логично если бы [0] == "" т.к. обе части приводятся к нулю.
Или ещё вопрос, почему [] != "0" и [[]] != "0" ведь тут так же обе части приводятся к нулю.
http://dorey.github.io/JavaScript-Equality-Table/
console.log(Number([0]));
console.log(Number(""));
console.log(Number([]));
console.log(Number([[]]));
console.log(Number("0"));
Ответ
обе части приводятся к нулю
Не приводятся. Массив приводится к строке, получаем две строки и сравниваются строки. А они, очевидно, разные. А вот если бы в правой части было число, то в сравнении строки и числа строка бы привелась к числу, из-за чего равенство бы выполнилось:
console.log([] == "")
console.log([] == 0)
console.log([] == "0")
console.log([0] == "")
console.log([0] == 0)
console.log([0] == "0")
Комментариев нет:
Отправить комментарий