In ECMAScript 6 we have
const variable arrived. Does it work the same as C++
Not exactly. I would even say, “not at all”.
When you declare something with
const in ECMAScript 6, it means that the identifier can’t be reassigned.
What does it mean?
- It means that you cannot declare that variable more than once. Because its binding is immutable.
- You have guaranty that no rebinding will happen to it.
- You will not be able to change its type.
- If your
constvariable is a simple value, like
booleanetc. you also wouldn’t be able to change its value.
So let’s look how does it work:
Very simple. Just use
const instead of
The value of a constant doesn’t have to to be known at compile time, but you must assign it a value exactly once.
Const and scopes
Constants can’t be redeclared.
You can declare
const inside the function scope with the same as outside it, but you actually have local scoped
You cannot reach
const outside scope:
Ok that’s easy. But also you cannot reach const by
this, because it is block-scoped:
Deleting and changing value of
You cannot change value or delete a simple constant variable.
If you declare
const Object, you will not be able to delete it, or make it
string, but you will be able to declare, change and even delete values of your
But there is the way to
freeze the Object with its values:
So where to use
const when you don’t need reassign the identifier. In practice it is becoming the brand new
var for objects and arrays.
Because if you need to change type of any of them, it seems you wrote bad, not semantic code.
And what about
Read more in the LET in ECMAScript 6
ES 2015 provided
let to let us write
var again? :)