In JavaScript, this is referred to as undefined, which is a unique sentinel value, distinct from null.
You get undefined by either evaluating the global variable undefined, or a property of an object, that is not defined or by evaluating a statement, that doesn't return a value, such as calls to functions, that don't return anything, or a block or a variable declaration (although those two aren't valid expressions, so you will only encounter that in a JavaScript REPL).
When the undefined value is coerced to be an Object it becomes null, but it is not null.
Here's a little illustration:
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
I think it is reasonable to call undefined values (in contrast to values defined to be null) undefined, if that is your question. Using a unique sentinel value to communicate the absence of a defined value is a workable solution for dynamic languages, although it is often poorly understood.