Difference between Object.freeze() and const in JavaScript
Last Updated :
12 Jul, 2025
ES6 has brought several new features and methods into JavaScript since its release. Amongst these new features are Object.freeze() method and const. Sometimes people get confused between Object.freeze() method and const but the Object.freeze() and const are completely different. In this article we will explain the differences between these two.
JavaScript const: The const keyword creates a read-only reference to a value. Variables created by the const keyword are immutable. In other words, you can’t reassign them to different values. Trying to reassign a constant variable will result in a TypeError.
Syntax:
const const_name;
const x;
Example 1:
JavaScript
let myName = "Geeksforgeeks"
console.log(myName)
// Uncaught TypeError
myName = "gfg"
Output:
Geeksforgeeks
The const keyword ensures that the variable created is read-only. But It doesn’t mean that the actual value to which the const variable reference is immutable. Even though the person variable is constant. However, you can change the value of its property. But you cannot reassign a different value to the person constant.
Example 2:
JavaScript
const person = {
name: "Geeksforgeeks"
};
// No TypeError
person.name = "gfg";
console.log(person.name);
Output:
gfg
Object.freeze() method: If you want the value of the person object to be immutable, you have to freeze it by using the Object.freeze() method.
Syntax:
Object.freeze(obj)
Example 1:
JavaScript
const person = Object.freeze({name: "Geeksforgeeks"});
// TypeError in strict mode
//in non-strict mode it prints "Geeksforgeeks"
person.name = "gfg";
console.log(person.name)
Output:
Geeksforgeeks
The Object.freeze() method is shallow, meaning that it can freeze the properties of the object, not the objects referenced by the properties.
Example 2:
JavaScript
const person = Object.freeze({
name: 'Geeksforgeeks',
address: {
city:"Noida"
}
});
person.address.country = "India"
console.log(person.address.country)
But the person.address object is not immutable, you can add a new property to the person.address object as follows:
// No TypeError
person.address.country = "India";
Output:
India
Conclusion:
- const prevents reassignment.
- Object.freeze() prevents mutability.
| Object.freeze()
| const
|
---|
1. | Object freeze() method helps in preventing existing properties from being changed | const is a keyword that was introduced in ES6 (2015). |
2. |
Its syntax is -:
Object.freeze(object)
| It is helpful if we want some variable not to be declared twice. |
3. | It takes one parameter as an Object. |
For example -:
const a = 10;
|
4. | Its return value is an object. | If we define a variable with const then it cannot be reassigned. |
5. | It also helps in preventing the new properties to be added to the specific object. | If we define a variable with const then its scope is blocked. |
Similar Reads
Difference Between Static and Const in JavaScript Static variable: A static variable in JavaScript is basically a property of the class which is not used on the object of the class but is used in the class itself. This static variable is stored into the data segment of the memory and its value is shared among all the objects/instances created in th
3 min read
Difference between var, let and const keywords in JavaScript JavaScript provides three ways to declare variables: var, let, and const, but they differ in scope, hoisting behaviour, and re-assignment rules. Understanding these differences helps write more predictable and maintainable code.var: Declares variables with function or global scope and allows re-decl
6 min read
Difference Between Scope and Closures in JavaScript The scope and closures are fundamental concepts that play a crucial role in how variables are accessed and managed within the functions and blocks of code. In this article, we will learn about the difference between scope and closures in JavaScript. What is Scope?The Scope in JavaScript refers to th
2 min read
What is the difference between freeze and seal in JavaScript? In JavaScript, Object.freeze makes an object immutable, preventing any changes to existing properties and values. Object.seal allows changes to existing properties but prevents adding or removing properties. Both methods enforce strict immutability, but freeze is stricter than seal. Table of Content
2 min read
Difference between var and let in JavaScript In the early days of JavaScript, there was only one way of declaring variables and that was using the var keyword. A variable declared with var is defined throughout the program. One of the issues with using the var keyword was redeclaring a variable inside a block will also redeclare the variable o
3 min read
Difference Between Variables and Objects in JavaScript The variables and objects are fundamental concepts but they serve different purposes. The Variables are used to store data values while objects are used to group related data and functions into a single entity. JavaScript VariableA variable in JavaScript is a named container that stores a value. It
2 min read