Este é o valor retornado quando uma variável não declarada é usada, uma variável que foi declarada mas sem valor atribuído é usada ou uma propriedade de objeto que não existe é usada.
Embora indefinido e nulo não sejam iguais, o operador == os trata como iguais, como
meu.prop == nulo
Se a propriedade prop não existir ou se existir, mas tiver um valor nulo, essa expressão será avaliada como verdadeira.
Quando um valor indefinido é usado em um ambiente booleano, ele é convertido em falso, quando usado em um ambiente numérico, é convertido em NaN e quando usado em um ambiente de string, é convertido em "indefinido"