В соответствии с В чем разница между нулем и undefined в JavaScript?, null и undefined - это два разных объекта (имеющих разные типы) в Javascript. Но когда я пробую этот код
var a=null;
var b;
alert(a==null); // expecting true
alert(a==undefined); // expecting false
alert(b==null); // expecting false
alert(b==undefined); // expecting true
Вывод вышеуказанного кода:
true
true
true
true
Теперь, когда == соответствует только значению, я думал, что оба undefined и null должны иметь одинаковое значение. Поэтому я попробовал:
alert(null) → дает null
alert(undefined) → дает undefined
Я не понимаю, как это возможно.
Вот демо.
Изменить
Я понимаю, что === даст ожидаемый результат, потому что undefined и null имеют разные типы, но как преобразование типа работает в Javascript в случае ==? Можем ли мы сделать явное преобразование типов, как в Java? Я хотел бы применить ручное преобразование типов на undefined и null.