В соответствии с В чем разница между нулем и 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
.