Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Почему в js null == undefined выдает true

Джон Шепард Знаток (389), на голосовании 1 год назад
Подскажите почему в js null == undefined выдает true, null ведь преобразовывается в 0, а undefined в NaN, а NaN ведь не равно 0 или я где то ошибаюсь подскажите как происходит преобразование и сравнение в данном случае.
Голосование за лучший ответ
Night Prowler Мудрец (15236) 1 год назад
Об этом условии говорит пункт 11.9.3 спецификации языка JavaScript (стандарт ECMA-262)
EVK IT Сервис К Мыслитель (5236) 1 год назад
По факту это одно и тоже, поэтому возвращает true
 function isDef (v) { return v !== undefined && v !== null } 
фигня какая-таМастер (1002) 1 год назад
по факту это не одно и то же
Metotron Искусственный Интеллект (114907) 1 год назад
Они же оба falsey, вот и равны, когда к bool приводятся. Ты почему-то хочешь приводить их к числу.
Яков Гото Искусственный Интеллект (320945) 1 год назад
Потому что знак == не учитывает тип данных.
фигня какая-та Мастер (1002) 1 год назад
== не учитывает тип при сравнении
=== учитывает

 null == undefined // true
null === undefined // false

В JS следующие значения считаются ложными и возвращают false в логическом контексте:
null, undefined, 0, NaN, false, '' (пустая строка)

 0 == false // true
false == '' // true
'' == 0 // true
Похожие вопросы