Variables in JavaScript are like containers that hold reusable data. These data containers need to be declared with some specific keywords in Javascript.
Right now there are 3 ways to declare a keyword in JavaScript:
- var (older/outdated way)
- let (introduced in ES6 ✨)
- const (introduced in ES6 ✨)
Before the standardization of ES6 (ES2015), everyone used to declare variables with the var
keyword. Now we have let
and const
for every possible case.
Rules for using const and let
Follow these two rules to decide:
- Use
const
as a constant when you are sure that the variable will not be redeclared. - Use
let
for everything else.
Rules for naming variables
Variable names are case sensitive, so name
and Name
both will be considered different variables.
let name = 'Pankaj';
let Name = 'Batman';
console.log(name); // 'Pankaj'
console.log(Name); // 'Batman'
Variable names cannot begin with a number but the numbers can be used in the middle and end of the variable name.
let 1name; // ❌ invalid
var 1name; // ❌ invalid
const 1name; // ❌ invalid
let name1; // ✔ valid
var name1; // ✔ valid
let my1name; // ✔ valid
const name1; // ❌ invalid
const name1 = 'Pankaj' // ✔ valid
A variable declared with const
must be initialized.
// ❌ invalid
const name; // SyntaxError: missing initializer
// ✔ valid
const name = 'Pankaj';
Variables can start, end, or contain the following:
- Uppercase strings
- Lowercase strings
- Underscores
_
- Dollar sign
$
let _name; // ✔ valid
var $name; // ✔ valid
const my_name; // ✔ valid
let my$name; // ✔ valid
Variables cannot start, end, or contain symbols and special characters:
let my@name; // ❌ invalid
const #name; // ❌ invalid
var my%name; // ❌ invalid
let -name; // ❌ invalid
const my^name; // ❌ invalid
var *name; // ❌ invalid
Multiple variables can be chained by comma, but it's not considered good practice to do this.
let x, y, z; // ✔ valid
var x, y, z; // ✔ valid
const x, y, z; // ❌ invalid
// ✔ valid with let, const and var
let x = 1, y = 2, z = 3;
const a = 1,
b = 2,
c = 3;
Subsequent declaration of a variable is possible with var
but not with let
and const
.
// ✔ valid
var age = 80;
var age = 81;
console.log(age) // 81
// ❌ invalid for let and const
let age = 80;
let age = 81;
// SyntaxError: Identifier 'age' has already been declared
// ✔ valid for var and let
let age = 80;
age = 81;
console.log(age) // 81
// ❌ invalid for const
const name = 'Hulk';
name = 'Thor'; // Uncaught TypeError: Assignment to constant variable.
// ✔ valid for let, var, and const if the variable is an object/array
const hero = {};
hero.name = 'Thor'; // ✔
const hero = { name: 'Hulk' };
hero.name = 'Thor'; // ✔
Notice in the above last example that we are just modifying one of the keys in the object and not replacing the entire object so it's working perfectly fine.
Why should we prefer let and const over var
It is good practice to avoid using var
declaration in your code. let
was introduced to provide a level of organization while managing the large data structures as it is safer knowing that your variable cannot be reassigned anywhere in its scope.
A quick tip
End all your statements with a semicolon. Although, JavaScript will do it for you when reading your code. But as a general guideline, we should always terminate each statement with a semicolon.
Thanks for reading! 🎉
Top comments (0)