Это значение возвращается, когда используется необъявленная переменная, или переменная, которая была объявлена, но не имеет присвоенного значения, или когда используется несуществующее свойство объекта.
Хотя undefine и null — это не одно и то же, оператор == рассматривает их как равные, например:
my.prop == ноль
Если свойство свойства не существует или если оно существует, но имеет значение null, то это выражение принимает значение true.
Когда неопределенное значение используется в логической среде, оно преобразуется в false, когда оно используется в числовой среде, оно преобразуется в NaN, а когда оно используется в строковой среде, оно преобразуется в «неопределенное».