In JavaScript, questo è indicato come undefined , che è un valore sentinella univoco, distinto da null .
Ottieni undefined valutando la variabile globale undefined , o una proprietà di un oggetto, che non è definita o valutando una dichiarazione, che non restituisce un valore, come le chiamate alle funzioni, che non restituire nulla, o un blocco o una dichiarazione di variabile (anche se questi due non sono espressioni valide, quindi lo incontrerai solo in un REPL JavaScript).
Quando il valore undefined è forzato ad essere un Object diventa null , ma non è null .
Ecco un piccolo esempio:
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
Penso che sia ragionevole chiamare valori non definiti (a differenza di quelli definiti come null ) indefiniti, se questa è la tua domanda. L'utilizzo di un valore sentinella univoco per comunicare l'assenza di un valore definito è una soluzione praticabile per i linguaggi dinamici, anche se è spesso capita male.