In JavaScript, null
, undefined
, and not defined
are three distinct concepts that refer to different values or states. In this article we shall look at null, undefined and not defined in Javascript and their unique use cases
Null is the intentional absence of any object value. This could be a property of an object, or an expected value of a variable.
let person = {
"name": "Lawson Luke",
"hobby": null
}
console.log(person.hobby); //null
When validating user inputs, values can also be checked for null values
let email = null;
if(email === null){
alert('Please enter your email');
}
Undefined, in the simplest term, means that a property of variable is not initialized or does not exist.
let person = {
"name": "Lawson Luke",
"hobby": "coding",
}
console.log(person.age); //undefined
“Not defined” refers to a variable that is not declared at any given point in time with the declaration keyword like var, let or const.
console.log(name); //Uncaught ReferenceError: name is not defined
It is important to note that null
and undefined
are distinct values, but they are both falsy values in JavaScript, which means they will evaluate to false
in a Boolean context. Also, not defined
is an error that occurs when you try to reference a variable or function that has not been declared
Now we know the difference between null, undefined and “not defined” in Javascript, and we can begin to write cleaner code and better logic.
When debugging JavaScript, you’ll often encounter ReferenceError and TypeError. While both indicate something went wrong,…
When selecting DOM elements in JavaScript, two common methods are document.querySelector() and document.getElementById(). But which…
When starting a JavaScript project, one of the first decisions you’ll face is: Should I…
Software development is one of the most valuable skills you can learn. From building websites…
In JavaScript, arrays are used to store multiple values in a single variable. While JavaScript…
Containerization is a lightweight form of virtualization that packages an application and its dependencies into…