JavaScript Const


googletag.cmd.push(function() googletag.display('div-gpt-ad-1422003450156-2'); );
JavaScript Const
❮ Previous
Next ❯
ECMAScript 2015
ES2015 intoduced two important new JavaScript keywords: let and const.
Variables defined with const behave like let variables, except they
cannot be reassigned:
Example
const PI = 3.141592653589793;
PI = 3.14; // This will give an error
PI = PI + 10; // This will also give an error
Try it Yourself »
Block Scope
Declaring a variable with const is similar to let
when it comes to Block Scope.
The x declared in the block, in this example, is not the same as the x declared outside the block:
Example
var x = 10;
// Here x is 10
const x = 2;
// Here x is 2
// Here x is 10
Try it Yourself »
You can learn more about Block Scope in the previuos chapter:
JavaScript Let.
Assigned when Declared
JavaScript const variables must be assigned a value when they are declared:
Incorrect
const PI;
PI = 3.14159265359;
Correct
const PI = 3.14159265359;
Not Real Constants
The keyword const is a little misleading.
It does NOT define a constant value. It defines a constant reference to a value.
Because of this, we cannot change constant primitive values, but whe can change the properties of constant objects.
Primitive Values
If we assign a primitive value to a constant, we cannot change the
primitive value:
Example
const PI = 3.141592653589793;
PI = 3.14; // This will give an error
PI = PI + 10; // This will also give an error
Try it Yourself »
Constant Objects can Change
You can change the properties of a constant object:
Example
// You can create a const object:
const car = type:"Fiat", model:"500", color:"white";
// You can change a property:
car.color = "red";
// You can add a property:
car.owner = "Johnson";
Try it Yourself »
But you can NOT reassign a constant object:
Example
const car = type:"Fiat", model:"500", color:"white";
car = type:"Volvo", model:"EX60", color:"red"; //
ERROR
Try it Yourself »
Constant Arrays can Change
You can change the elements of a constant array:
Example
// You can create a constant array:
const cars = ["Saab", "Volvo", "BMW"];
// You can change an element:
cars[0] = "Toyota";
// You can add an element:
cars.push("Audi");
Try it Yourself »
But you can NOT reassign a constant array:
Example
const cars = ["Saab", "Volvo", "BMW"];
cars = ["Toyota", "Volvo", "Audi"]; //
ERROR
Try it Yourself »
Browser Support
The const keyword is not supported in Internet Explorer 10 or earlier.
The following table defines the first browser versions with full support for the const keyword:
Chrome 49 | IE / Edge 11 | Firefox 36 | Safari 10 | Opera 36 |
Mar, 2016 | Oct, 2013 | Feb, 2015 | Sep, 2016 | Mar, 2016 |
googletag.cmd.push(function() googletag.display('div-gpt-ad-1493883843099-0'); );
Redeclaring
Redeclaring a JavaScript var variable is allowed
anywhere in a program:
Example
var x = 2; // Allowed
var x = 3; //
Allowed
x = 4; // Allowed
Redeclaring or reassigning an existing var or let
variable to const, in the same scope, or in
the same block, is not allowed:
Example
var x = 2; // Allowed
const x = 2; // Not allowed
let x = 2; // Allowed
const x = 2; // Not allowed
Redeclaring or reassigning an existing const variable, in the same scope, or in
the same block, is not allowed:
Example
const x = 2; // Allowed
const x = 3; // Not allowed
x = 3; // Not allowed
var x = 3; // Not allowed
let x = 3; // Not allowed
const x = 2; // Allowed
const x = 3; // Not allowed
x = 3;
// Not allowed
var x = 3;
// Not allowed
let x = 3;
// Not allowed
Redeclaring a variable with const, in another scope, or in another block, is allowed:
Example
const x = 2; // Allowed
const x = 3; // Allowed
const x = 4; // Allowed
Hoisting
Variables defined with var are hoisted to the top. (Js
Hoisting)
You can use a var variable before it is declared:
Example
carName = "Volvo"; // You CAN use carName here
var carName;
Try it Yourself »
Variables defined with const are not hoisted to the top.
A const
variable is cannot be used before it is declared
Example
carName = "Volvo"; // You can NOT use carName here
const carName = "Volvo";
❮ Previous
Next ❯