A variable is undeclared if it has not been declared with an appropriate
keyword (i.e. var
, let
or const
).
Accessing an undeclared variable will throw a ReferenceError
.
console.log(x); // ReferenceError: x is not defined
A variable is undefined
if it hasn’t been assigned a value.
undefined
is a primitive data type in JavaScript and
represents the absence of a value, intentional or otherwise.
let x;
console.log(x); // undefined
A variable is assigned a value of null
like any other value.
null
is also primitive data type in JavaScript and always
represents the intentional absence of a value.
let x = null;
console.log(x); // null
Undeclared variables will throw an error, which makes them easy to spot
and are not very common anyways. undefined
and
null
can be easily spotted with a conditional as they are
both falsy values. Due to that, null
and
undefined
are loosely equal (==
), but not
strictly equal (===
).