What is the difference between null, undefined and undeclared in JavaScript?

The difference between null, undefined and undeclared

undefined means that the value has not yet been defined, so when a variable is declared but not assigned any value, the variable will be undefined, which can be understood as "not yet".

null represents the empty value of a variable, which can be understood as "nothing".

undefined and null are both primitive data types in JavaScript, just like any other primitive data types, such as: string, number, can be assigned to the variable. Both have different meanings in use.

For example, when the front-end wants to request data from the back-end, because it needs to wait for the data to be returned, a certain variable may be undefined at the beginning, and when the data was responded, it will change to the corresponding data type.

In the following example, we have a variable users, define its type as

UserDTO[] | undefined


UserDTO[] | null


because before getting the data, users is "Not yet".

type UserDTO = {
id: string;
firstName: string;
lastName: string;
profilePicture: string | null;
};

const users: UserDTO[] | undefined = await fetchUsers();


Vice versa, in the above example, when users is obtained, some users do not have a profile picture, because it is "none", so the type of profilePicture is

profilePicture: string | null;


profilePicture: string | undefined;


undeclared is often compared with undefined. undefined means that it has been declared as a defined value, but undeclared means that it has never been declared.

When a variable has not been declared using var, let or const, it is called undeclared. If we try to call this variable, a ReferenceError error will be reported.

console.log(x); // Uncaught ReferenceError: x is not defined

ChatGPT Prompts
Software Engineer Interview Questions
Frontend Interview Resources
Backend Interview Resources
Career Resources
Contact
ExplainThis