Determine if variable is ‘undefined’ or ‘null’

JavaScript Tips

In JavaScript, you can check whether a variable is undefined or null or blank or has a value defined in it.

In JavaScript, ‘undefined’ means a variable has been declared but has not been assigned a value yet, such as:

var a;
console.log(a); //shows undefined
console.log(typeof a); //shows undefined

‘null’ is an assignment value. This can be assigned to a variable as a representation of no value:

var a = null;
console.log(a); //shows null
console.log(typeof a); //shows object

So, from the preceding examples, this is clear that undefined and null are two distinct types i.e. undefined is a type itself where as null is an object.

null === undefined // false
null == undefined // true
null === null // true

and,

null = 'value' // ReferenceError
undefined = 'value' // 'value'

So, null and undefined are both are used to represent the absence of some value.

You can just check whether the variable has a true value or not.
That means:

if( value ) {
...
}

Read Also: Getting Started with Handlebars JS

This will evaluate to true if value is not:
– null
– undefined
– NaN
– empty string (“”)
– 0
– false

If you do not know whether a variable exists or not i.e. if it was declared you should check with the typeof operator.

For instance,

if( typeof value !== 'undefined' ) {
...
}

If you know that a variable is declared at least, then, you should directly check with the value also.

It seems the most complete answer would be:

if( typeof value === 'undefined' || variable === null ){
// Do stuff
}

Read Also: Date Object – JavaScript

In modern browsers you can safely compare the variable directly to undefined:

if (value === undefined) {...}

You can use void operator to get the value of undefined.
This will work even if the global window.undefined value has been over-written:

if (value === void(0)) {...}

But don’t use void(0) directly.

Use instead:

var undefined = void(0);
console.log(value === undefined);

Although null can do things undefined does, this is more or less related to objects rather than scalars.
Indeed, JavaScript considers null itself an object — typeof null returns “object”.

Leave a Reply

Your email address will not be published. Required fields are marked *