Skip to content

NULL and UNDEFINED #14

@Jaynil1611

Description

@Jaynil1611

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:

  • null is an empty or non-existent value.
  • null must 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 null and undefined are 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 !== undefined but null == undefined.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions