ноль: означает отсутствие значения;
undefined: представляет необъявленную переменную,
или переменная объявлена, но ей не присвоено значение,
Или свойство объекта, которого не существует.
Оператор == рассматривает эти два значения как равные. Если вы хотите провести различие между ними, используйте оператор === или typeof.
————————————-Разграничительная линия неясности——————————————-
В JavaScript null и undefine когда-то вызывали путаницу. Следующий анализ поможет вам это понять более четко (или еще больше запутать):
- null - ключевое слово; undefined - свойство объекта Global
- null - это объект (пустой объект, без каких-либо свойств и методов undef); значение неопределенного типа. Попробуйте следующий код:
document.writeln(typeof null); // возвращаем объект;
document.writeln(typeof undefine); // return undefine- В объектной модели все объекты являются экземплярами Object или его подклассов, за исключением объектов null:
document.writeln(null instanceof Object); // return false- null; «Равное значение (==)» равно неопределенному, но не «соответствующее значение (===)» неопределенному:
document.writeln(null == undefined); //возвращаем true;
document.writeln(null === undefined); //возвращаем false. И null, и undef могут быть преобразованы в false во время работы, но они не равны false:
document.writeln(!null, !undefined); // вернуть истину, истину
document.writeln(null==false); // возвращаем ложь;
document.writeln(undefined==false); //возвращаем false);