var, let, and const are all used to declare variables in JavaScript, but they have some differences in terms of scope, reassignment, and initialization:
var
- var declarations are globally scoped or function scoped.
- They can be reassigned and re-declared within their scope.
- var variables are hoisted to the top of their scope and initialized with undefined.
var x = 10;
console.log(x); // Output: 10
{
var x = 20;
console.log(x); // Output: 20
}
console.log(x); // Output: 20
let
- let declarations are block scoped.
- They can be reassigned but not re-declared within their scope.
- let variables are not hoisted; they are only accessible after they are declared.
let y = 10;
console.log(y); // Output: 10
{
let y = 20;
console.log(y); // Output: 20
}
console.log(y); // Output: 10
const
- const declarations are block scoped.
- They cannot be reassigned or re-declared within their scope.
- const variables must be initialized during declaration and cannot be left uninitialized.
const z = 10;
console.log(z); // Output: 10
{
const z = 20;
console.log(z); // Output: 20
}
console.log(z); // Output: 10
In summary, var has function scope, let and const have block scope. let allows reassignment, while const does not. const requires initialization and cannot be re-declared or reassigned.
Top comments (0)