The var keyword in JavaScript is used to declare variables. It was the primary way to declare variables before the introduction of let and const in ES6. While var is still supported, it has limitations compared to modern alternatives.
Syntax of var
var variableName = value;
var: The keyword to declare a variable.variableName: The name of the variable.value: The initial value assigned to the variable (optional).
Features of var
Function Scope
Variables declared with var are accessible throughout the function they are declared in.
Example:
function testVar() {
var x = 10;
console.log(x); // Outputs 10
}
testVar();
console.log(x); // Error: x is not defined
Hoisting
Variables declared with var are “hoisted” to the top of their scope but are initialized with undefined.
Example:
console.log(a); // Outputs undefined
var a = 5;
Global Scope When Declared Outside Functions
If var is declared outside a function, it becomes a property of the global object (e.g., window in browsers).
Example:
var globalVar = "I am global variable";
console.log(window.globalVar); // Outputs: I am global variable
Redeclaration Allowed
A variable declared with var can be redeclared in the same scope without errors.
Example:
var name = "Junaid";
var name = "Arsheen"; // No error
console.log(name); // Outputs: Arsheen
No Block Scope
Variables declared with var do not respect block-level scoping.
Example:
if (true) {
var color = "blue";
}
console.log(color); // Outputs: blue
Example Usage of var
1. Declaring a Variable
var message = "Hello, World!";
console.log(message); // Outputs: Hello, World!
2. Function Scope
function welcome() {
var greeting = "Hi!";
console.log(greeting); // Outputs: Hi!
}
welcome();
console.log(greeting); // Error: greeting is not defined
3. Hoisting
console.log(num); // Outputs: undefined
var num = 10;
4. Redeclaration
var age = 25;
var age = 30; // Redeclaration allowed
console.log(age); // Outputs: 30
5. No Block Scope
for (var i = 0; i < 3; i++) {
console.log("Inside loop:", i); // Outputs: 0, 1, 2
}
console.log("Outside loop:", i); // Outputs: 3
When to Use var
- Legacy Code: Use
varif you need to maintain or update older JavaScript codebases. - Global Variables (with caution): Use
varonly when necessary for global declarations. - Avoid in New Code: For modern JavaScript projects, prefer
letorconst.
Conclusion
The var keyword is a fundamental part of JavaScript but has been largely superseded by let and const. Understanding var is crucial for working with older code and understanding JavaScript’s history, but for new projects, modern alternatives are recommended.
