Em JavaScript, isso é chamado de undefined, que é um valor sentinela exclusivo, diferente de null.
Você undefinedavalia a variável global undefinedou a propriedade de um objeto que não está definido ou avalia uma instrução que não retorna um valor, como chamadas para funções, que não retornam nada ou um bloco ou uma declaração de variável (embora essas duas não sejam expressões válidas, você encontrará apenas isso em um JavaScript REPL).
Quando o undefinedvalor é coagido a ser um, Objectele se torna null, mas não é null.
Aqui está uma pequena ilustração:
var a = [1, 2, 3];//undefined
a[0];//1
a[4];//undefined
var o = { foo: "123" };//undefined
o.foo;//"123";
o.bar;//undefined
function bar() { return null; };//undefined
bar();//null
function foo() { /*just an empty block*/};//undefined
foo();//undefined
typeof undefined;//"undefined"
typeof null;//"object"
null == undefined;//true - that is because undefined is converted to an object for comparison and thus yields null
null === undefined;//false - because they are not the same
Eu acho que é razoável chamar valores indefinidos (em contraste com os valores definidos para serem null) indefinidos, se essa é a sua pergunta. Usar um valor sentinela exclusivo para comunicar a ausência de um valor definido é uma solução viável para linguagens dinâmicas, embora muitas vezes seja pouco compreendido.