Home >Web Front-end >JS Tutorial >Can You Modify Constant Objects in JavaScript?
The Perplexing Const: Why You Can (Sort of) Modify Constant Objects in JavaScript
Despite the clear definition of constants in ECMAScript 6, where they are declared as immutable values that cannot be reassigned or redeclared, many browsers now supporting the const keyword seem to allow for certain modifications to constant objects.
This perceived contradiction arises from the technicalities of constant behavior in JavaScript. While you cannot directly reassign or redeclare a constant, you can make changes to the properties of a constant object.
The reason for this is that when you add or remove elements from an array, or add or change properties in an object, you are not actually changing the constant itself. Rather, you are modifying the internal state of the object that the constant points to.
For example, in the following code:
const yyy = []; yyy.push(6); yyy.push(1);
yyy remains a reference to the same array, but the contents of that array change. Similarly, in the following code:
const x = {}; x.foo = 'bar';
x continues to refer to the same object, but a new property, foo, is added to that object.
Therefore, it is possible to modify the state of constant objects, but you cannot reassign or redeclare the constant itself.
The above is the detailed content of Can You Modify Constant Objects in JavaScript?. For more information, please follow other related articles on the PHP Chinese website!