JavaScript: The Old “var”

In JavaScript, how you create and use variables is very important. The way your code works depends a lot on this. The var keyword has been used in JavaScript for a long time to make variables. This article will explain more about the var keyword, how it works, where it works, and what it means for making websites today.

Introduction to Variable Declaration with var

The var keyword in JavaScript is used to declare a variable, optionally initializing it to a value. var-declared variables are function-scoped or globally-scoped and are subject to hoisting, which can lead to behaviors that are unexpected for developers coming from other programming languages. more details on variable declaration

Function Scope

Variables declared with var within a function are local to the function, accessible anywhere within it. This function-scoped characteristic implies that such variables, even when declared within a block (e.g., within an if statement), are accessible throughout the entire function.

function exampleFunction() { if (true) { var x = 5; } console.log(x); // Outputs: 5 } exampleFunction();


Hoisting is a JavaScript mechanism where variable and function declarations are moved to the top of their containing scope during the compilation phase. For var-declared variables, this means they can be referenced before their declaration in the code.

console.log(y); // Outputs: undefined console.log(x); // Error as let makes no hoisting let x = 4; var y = 5;

In this example, y is hoisted, so it's known to the entire function scope but not initialized until the execution reaches the declaration, leading to an undefined output rather than a ReferenceError.

Global Variables and the var Keyword

When var is used to declare a variable outside any function, it becomes a global variable, accessible from anywhere in the code. However, this can potentially lead to conflicts and unintended behavior, especially in large or complex codebases.

var globalVar = "I am global";

Limitations of var and Modern Alternatives

While var has been a fundamental part of JavaScript, it presents limitations that have led to the introduction of let and const in ES6 (ECMAScript 2015), offering block-scoped variable declarations.

Variable Hoisting and Scope Confusion

The hoisting behavior and function-scoped nature of var can lead to confusion, particularly in loop constructs or conditional blocks, where block-scoped variables are expected intuitively.

Introduction of let and const

To mitigate the issues associated with var, let and const provide developers with block-scoped variables, reducing the risk of errors from hoisting and making the code more predictable and easier to debug.

Best Practices for Using var in JavaScript

Despite its limitations, var remains a part of the JavaScript language and may still be encountered, especially in legacy code. Adhering to best practices ensures that its use does not detrimentally affect the functionality or maintainability of the code.

  1. Limit Use in Modern Code: Prefer let and const for variable declarations to take advantage of block scoping and reduce potential hoisting issues.
  2. Understand Scope: When working with var, be mindful of its function-scoped nature and plan your code structure accordingly to prevent unintentional global variables.
  3. Initialization at Declaration: Initialize var variables at the point of declaration to avoid undefined values due to hoisting.


The var keyword has been very important in JavaScript. Knowing how it works and where it can be used is key to writing good, error-free code. As JavaScript has improved, new ways to declare variables, like let and const, have been added. These new methods fix some problems with var and make JavaScript more like other modern programming languages. However, understanding var is still very useful, especially when updating or fixing older programs that use it. By using var correctly and following the best ways to write code, developers can make their code work well and be easy to understand.

Practice Your Knowledge

Which of the following statements about the 'var' keyword in JavaScript are true?

Quiz Time: Test Your Skills!

Ready to challenge what you've learned? Dive into our interactive quizzes for a deeper understanding and a fun way to reinforce your knowledge.

Do you find this helpful?