1. Introduction
var
allows you to declare a globally-scoped or function-scoped variable. You can initialize a var
variable when you declare it but it is optional.
var x;
You can declare and initialize the variable in the same statement.
var x = 5;
You can do declare and initialize two variables in the same line.
var x = 1, y = 2;
You can assign same value to the variables in a single statement.
var x, y = x = 'hello';
2. var with respect to global context
When you declare a var
variable, it gets added to the window
. You can try the following in the browser console:
var x = 5; console.log(x); // output is 5 console.log(window.x); // output is 5
In the global context, a var
variable is added as a non-configurable property of the global object and it can not be deleted using the delete
.
'use strict'; var x = 5; globalThis.hasOwnProperty('x'); // true delete globalThis.x; // TypeError in strict mode. Fails silently if not in strict mode. delete x; // SyntaxError in strict mode. Fails silently if not in strict mode.
3. You can redeclare a var
It is possible to redeclare a var
variable in your code.
var x = 5; var x = 6; console.log(x); // output is 6
4. var is global and can be overridden unintentionally
In the following code, x is unintentionally changed in the if block.
var x = 5; if (true) { var x = 2; console.log(x); //output: 2 } console.log(x); //output: 2
5. var variable is hoisted
Hoisting in JavaScript refers to the process in which the JavaScript engine appears to move the declaration of functions, variables or classes to the top of their scope, prior to execution of the code.
console.log("name is " + name); var name; //Output is: name is undefined
6. Loosely-typed Variables
JavaScript is a dynamically typed language. You can assign any value to a var
variable. You are not required to declare its type. You can assign a different value of different type to a var
variable in your code.
var x = 1; // numeric value x = 'hello'; // string value
7. Conclusion
In this quick tutorial, we discussed var variable. Using var could lead to unwanted errors and requires care. Due to the is block-scoped variables are suggested to use. Due to this reason let
was introduced. We’ll discuss let in upcoming tutorials.