5.7 Variable Declaration¶
Re-declaration¶
Task 1: Declare the variables a
, b
, and c
with the keywords var
, let
, const
, respectively. And assign them the values of 1
, 2
, and 3
, respectively.
var a = 1;
let b = 2;
const c = 3;
console.log(a, b, c);
The result is: 1 2 3
Task 2: Refer to task 1; re-declare the variables a
, and b
.
var a = 1;
let b = 2;
const c = 3;
var a;
let b;
console.log(a, b);
The result is: Uncaught SyntaxError: Identifier 'b' has already been declared
Task 3: Refer to task 1; re-declare the variables a
, and c
.
var a = 1;
let b = 2;
const c = 3;
var a;
const c;
console.log(a, c);
The result is: Uncaught SyntaxError: Identifier 'c' has already been declared
Assignment¶
Task 4: Assign 10
to myVar1
.
var myVar1;
myVar1 = 10;
console.log(myVar1);
The result is: 10
Task 5: Assign 20
to myVar2
.
let myVar2;
myVar2 = 20;
console.log(myVar2);
The result is: 20
Task 6: Assign 30
to myVar3
.
const myVar3;
myVar3 = 30;
console.log(myVar3);
The result is: Uncaught SyntaxError: Missing initializer in const declaration
Re-assignment¶
Task 7: Re-assign 100
to myVar1
.
var myVar1 = 10;
myVar1 = 100;
console.log(myVar1);
The result is: 100
Task 8: Re-assign 200
to myVar2
.
let myVar2 = 20;
myVar2 = 200;
console.log(myVar2);
The result is: 200
Task 9: Reassign 300
to myVar3
.
const myVar3 = 30;
myVar3 = 300;
console.log(myVar3);
The result is: Uncaught TypeError: Assignment to constant variable.
Hoisting¶
Task 10: Access the variable myVar
before its declaration.
console.log(myVar);
var myVar = "Hello";
The result is: undefined
Task 11: Access the variable myVar
before its declaration.
console.log(myVar);
let myVar = "Hello";
The result is: Uncaught ReferenceError: Cannot access 'myVar' before initialization
Task 12: Access the variable myVar
before its declaration.
console.log(myVar);
const myVar = "Hello";
The result is: Uncaught ReferenceError: Cannot access 'myVar' before initialization
Window¶
Task 13: Log the value of window.a
in the console.
var a = 1;
console.log(window.a);
The result is: 1
Task 14: Log the value of window.a
in the console.
let a = 1;
console.log(window.a);
The result is: undefined
Task 15: Log the value of window.a
in the console.
const a = 1;
console.log(window.a);
The result is: undefined
Summary¶
Difference | var | let | const |
---|---|---|---|
Declaration | var a = 1; //a = 1 | let a = 1; // a = 1 | const a = 1; //a = 1 |
Re-declaration | var a = 1; var a; //a = 1 | let a = 1; let a; //Identifier 'a' has already been declared | const a = 1; const a; //Identifier 'a' has already been declared |
Assignment | var a; a = 1; // a = 1 | let a; a = 1; // a = 1 | const a; a = 1; //Missing initializer in const declaration |
Re-assignment | var a = 1; a = 2; // a = 2 | let a = 1; a = 2; // a = 2 | const a = 1; a = 2; //Assignment to constant variable |
Hoisting | console.log(a); // undefined var a = 1; | console.log(a); // Cannot access 'myVar' before initialization let a = 1; | console.log(a); // Cannot access 'myVar' before initialization const a = 1; |
window property? | var a = 1; console.log(window.a); // 1 | let a = 1; console.log(window.a); // undefined | const a = 1; console.log(window.a);// undefined |
Scope | Function Scoped | Block Scoped | Block Scoped |