-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
NULL
What is null?
null is an assignment value. It can be assigned to a variable as a representation of no value:
There are two features of null you should understand:
nullis an empty or non-existent value.nullmust be assigned.
In the example below, we are assigning value to null.
let value = null;
console.log(value);
// null
- null expresses a lack of identification, indicating that variable points to no object
- When you assign null to a variable, you are declaring that this value is explicitly empty.
UNDEFINED
What is undefined?
Undefined usually means a variable has been declared, but not defined.
- Another common scenario, where you will encounter an undefined is while trying to access a property of an object that doesn’t exist.
let myObject = {};
console.log(myObject.value);
// undefined
- To summarize,
- An object is declared but not defined/initialized.
- Accessing an object property or an array index that does not exist.
- Calling a function, without it’s required function parameters.
What is similar?
- Both
nullandundefinedare primitive values in JavaScript. - Another thing to note is that when comparing null and undefined they are equal.
null == undefined
// true
- This is because both of them are considered falsy values in JavaScript.
Differences null vs. undefined
-
Arithmetic Operations
Another interesting difference to note is when arithmetic operations are performed with null vs. undefined.
Arithmetic operations with a null value will result in integer value while any arithmetic operation with undefined will result in the value of the variable being changed to
NaN.
let a = 5 + null;
console.log(a);
// 5
let b = 5 + undefined;
console.log(b);
// NaN
-
Equality
-
Typeof Null and Undefined
- Interestingly enough, when using typeof to test null, it returns an object:
console.log(typeof(undefined)); //"undefined"
console.log(typeof(null)); //"object"
-
Comparison Using Abstract and Strict Equality
- Since these are different data types, if we compare them with strict equality ===, we get false.
- But if we compare them with abstract equality ==, we get true.
console.log(null === undefined) //false
console.log(null == undefined) //true
console.log(null !== undefined) //true
Summary
- null is an assigned value. It means nothing.
- undefined typically means a variable has been declared but not defined yet.
- null and undefined are falsy values.
- null and undefined are both primitives. However, an error shows that typeof null = object.
null!==undefinedbutnull==undefined.
Metadata
Metadata
Assignees
Labels
No labels