Подтвердить что ты не робот

Почему 0 == "" true в JavaScript

Почему 0 == "" true в JavaScript? Я нашел здесь подобное сообщение, но почему число 0 похоже на пустую строку? Конечно, 0 === "" неверно.

4b9b3361

Ответ 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