Trusted answers to developer questions
Trusted Answers to Developer Questions

Related Tags

javascript

What is immutable.js?

Kainat Asif

Grokking Modern System Design Interview for Engineers & Managers

Ace your System Design Interview and take your career to the next level. Learn to handle the design of applications like Netflix, Quora, Facebook, Uber, and many more in a 45-min interview. Learn the RESHADED framework for architecting web-scale applications by determining requirements, constraints, and assumptions before diving into a step-by-step design process.

immutable.js is a library of Javascript that is used to support immutable data types. An immutable datatype is a data type whose value cannot be changed after it is created.

Datatypes

Immutable data types supported by immutable.js are:

  • List
  • Stack
  • Map
  • Set
  • Ordered map
  • Ordered set
  • Record

Importing data types

Immutable data types are imported from immutable.js as shown below:

import { datatype } from 'immutable';
  • datatype: The immutable data type to be imported.

For example, the immutable data type List can be imported as:

import { List } from 'immutable';

fromJS() and toJS()

  • The fromJS() method converts normal Javascript objects to immutable.
  • The toJS() method converts immutable Javascript objects back to normal.

Examples

Example 1

Consider the code snippet below, which demonstrates the use of the immutable.js library:

import { isImmutable, List } from 'immutable';
const obj1 = ['a', 'b', 'c'];
console.log("obj1 is mutable: ",isImmutable(obj1));
let obj2 = List(['a', 'b', 'c']);
console.log("obj2 is mutable: ",isImmutable(obj2));

Explanation

  • A list obj1 is declared in line 3. The isImmutable() method is called on obj1 and checks whether the object is immutable. The isImmutable() method returns false for obj1, which means that obj1 is not immutable.
  • A list obj2 is declared in line 6 using List imported from immutable.js. The isImmutable() method is called on obj2 and checks whether the object is immutable. The isImmutable() method returns true for obj2, which means that obj2 is immutable.

Example 2

Consider the code snippet below, which demonstrates the use of fromJS() and toJS():

import { isImmutable, List, fromJS} from 'immutable';
let obj1 = List(['a', 'b', 'c']);
console.log("obj1 is mutable: ",isImmutable(obj1));
const obj2 = fromJS(obj1);
console.log("obj2 is mutable: ",isImmutable(obj2));
const obj3 = obj2.toJS();
console.log("obj3 is mutable: ",isImmutable(obj3));

Explanation

  • An immutable list obj1 is declared in line 3.

  • The fromJS() method is used in line 6 to create another immutable list obj2 that has the same data as obj1. The isImmutable() method is called on obj2 to check if it is immutable. The isImmutable() method returns true for obj2, which means that obj2 is immutable.

  • The toJS() method is used in line 9 and converts the immutable object obj2 to mutable and assigns it obj3. The isImmutable() method is called on obj3 to check if it is immutable. The isImmutable() method returns false for obj3, which means that obj3 is not immutable.

RELATED TAGS

javascript

CONTRIBUTOR

Kainat Asif
Copyright ©2022 Educative, Inc. All rights reserved

Grokking Modern System Design Interview for Engineers & Managers

Ace your System Design Interview and take your career to the next level. Learn to handle the design of applications like Netflix, Quora, Facebook, Uber, and many more in a 45-min interview. Learn the RESHADED framework for architecting web-scale applications by determining requirements, constraints, and assumptions before diving into a step-by-step design process.

Keep Exploring