comparison on var, let and const variable declaration
Introduction
let, const and var are keywords used for variable declarations in JavaScript programming language,
const and let were newly introduced to the programming language in Escmascript es6 or es2016.
Declaration keywords
the syntax of declaring a variable using let keyword is done as;
let {variable name} = value
for const it's done as;
const {variable name} = value
similarly with var;
var {variable name} = value
Scope for 'let' and 'const' variables
let and const declared variables are block scoped that means values assigned remain within the block of assignment;
take for instance;
if(true) {
const declaration = "declared"
}
console.log(typeof declaration)
// undefined
values remain accessible only within the if block
Scope for 'var' variables
var declared variables are function scoped so variables declared within a function are only accessible within the function it's self for example;
function assign(param){
var assignment = param;
}
assign('assigned')
console.log(typeof assignment)
// undefined
Outside the scope of the function type of assignment is 'undefined', within the scope of the function it's a String with the value "assigned"
mutability for 'var' and 'let' variables
variables declared using 'var' and 'let' keyword are mutable therefore can be reassigned with a new value;
var typeofvar = []
typeofvar = {} // true
let me = 'myself'
me = 'i' // true
Immutability for 'const' variables
const variables are immutable, they can only be assigned once, for example;
const variable = []
variable.push(10) // true
variable = 'string' // "TypeError: Assignment to constant variable"
Redeclarations of 'let' and 'const' variables
const and let declared variables cannot be redeclared within their scope once they are declared any attempt to redeclare them will cause the JavaScript runtime to throw an error;
const name = "John" // true
const name = "duke" //
"SyntaxError: Identifier 'name' has already been declared"
Redeclarations of 'var' variables
variables declared using var can be redeclared at anytime in or outside their scope
var name = "duke" // true
var name = "max" // true
var name = "khloe" // true
Comments
Post a Comment