Почему 0 == ""
true в JavaScript? Я нашел здесь подобное сообщение, но почему число 0 похоже на пустую строку? Конечно, 0 === ""
неверно.
Почему 0 == "" true в JavaScript
Ответ 1
0 == ''
Левый операнд имеет тип Number.
Правильный операнд имеет тип String.
В этом случае правый операнд принуждается к типу Number:
0 == Number('')
что приводит к
0 == 0
Из <сильного > алгоритма сравнения абстрактного равенства (номер 4):
Если Type (x) - Number и Type (y) - String, верните результат сравнение x == ToNumber (y).
Источник: http://es5.github.com/#x11.9.3