Constants and Scoped Variables
We now leave language subsets behind and transition to language
extensions. In JavaScript 1.5 and later, you can use the const
keyword to define constants. Constants
are like variables except that assignments to them are ignored
(attempting to alter a constant does not cause an error) and attempts
to redeclare them cause errors:
const
pi
=
3.14
;
// Define a constant and give it a value.
pi
=
4
;
// Any future assignments to it are silently ignored.
const
pi
=
4
;
// It is an error to redeclare a constant.
var
pi
=
4
;
// This is also an error.
The const
keyword behaves
much like the var
keyword: there is
no block scope, and constants are hoisted to the
top of the enclosing function definition. (See Function Scope and Hoisting)
The lack of block scope for variables in JavaScript has long
been considered a shortcoming of the language, and JavaScript 1.7
addresses it by adding the let
keyword to the language. The keyword const
has always been a reserved (but
unused) word in JavaScript, so constants can be added without breaking
any existing code. The let
keyword
was not reserved, so it is not recognized unless you explicitly opt-in
to version 1.7 or later.
Get JavaScript: The Definitive Guide, 6th Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.