Reputation: 449
Reading and tinkering with the new features offered by ECMAScript 6.
The new 'const' statement for writing constant variables is a nifty feature, which adds features to an already interesting update.
The variable is created as read-only, and once it is stated it can't be overridden.
EDIT: A consequent problem arise, for example, when testing code on the console. Running a script containing a const definition twice, would lead to an error, breaking the execution.
What if I want to release that keyword? Is there any way to unset or delete the variable?
I've read in this post that this is actually a problem which affects the var statement as well, because the environments where the variables are created are different on many level of abstraction.
How ECMAScript 6 intend to address this issue?
Upvotes: 9
Views: 20140
Reputation: 101
FYI - const a = {}; var b = new a; a = 33;
I just changed the const 'a' back to a var.
Upvotes: -4
Reputation: 18738
It is not possible to redefine variables declared using const
.
However, const
is block-scoped. To address the issue you describe, when testing some code in the console all you would have to do is wrap your script in {
and }
:
{ const x = 1; }
{ const x = 2; }
Note that many browsers that already support the const
keyword do not yet support block-scoped constants so the example above will fail in Chrome and Firefox (See Kangax's compatibility table for more).
Upvotes: 7