DEV Community

Ehab Hussein
Ehab Hussein

Posted on

var - let - const

In the early years of JavaScript, they introduced the only variable declaration keyword "var" that can make you declare a variable.

1- var
var is global-scoped or function-scoped, but what does that mean?

  • global scope means that the variable is available to be used at any level in the code after the line where it is declared. Ex:
  var height = 20;
  console.log(height); // output: 20;

  if (true) {
    var width = 20;
  }
  console.log(width); // output: 20;
Enter fullscreen mode Exit fullscreen mode

function-scoped because when we declare a variable inside a function we can't access it out of that function.

function testVar() {
    var test = "Tested";
  }

console.log(test); // ReferenceError: test is not defined
Enter fullscreen mode Exit fullscreen mode
  • Can be reassigned.
  var height = 20;
  height = 0;
  console.log(height) // output: 0
Enter fullscreen mode Exit fullscreen mode
  • Can be redeclared.
  var height = 20;
  var height = 10;
  console.log(height) // output: 10
Enter fullscreen mode Exit fullscreen mode

It is important to note that developers abandoned using var keyword due to its global scope and re-declaration behavior since it can be prone to errors. imagine you are writing 200 lines of code and at line 201 you decide to declare a variable that you have already declared but you forgot that you have this variable already initialized above, you need some error message to tell you that you already have this variable initialized. and also to reduce errors you shouldn't access a variable out of its scope.

2- let
Let is block-scoped, that means it will be available to use only at its scope but not in any outer scopes.

Ex:

  let height = 20;
  console.log(height); // output: 20;

  if (true) {
    let width = 20;
  }
  console.log(width); // ReferenceError: width is not defined

  function testVar() {
    let test = "Tested";
  }

  console.log(test); // ReferenceError: test is not defined
Enter fullscreen mode Exit fullscreen mode
  • Can be reassigned, but can't be redeclared.
  let height = 20;
  height = 0;
  console.log(height) // output: 0
Enter fullscreen mode Exit fullscreen mode

3- const
same as let keyword it is block-scoped but can't be reassigned or redeclared, as the name suggests it is constant and can't be changed.

Ex:

  let height = 20;
  console.log(height);
  // output: 20;

  if (true) {
    let width = 20;
  }
  console.log(width);
  ReferenceError: width is not defined

  function testVar() {
    let test = "Tested";
  }

  console.log(test);
  ReferenceError: test is not defined
Enter fullscreen mode Exit fullscreen mode

SurveyJS custom survey software

Build Your Own Forms without Manual Coding

SurveyJS UI libraries let you build a JSON-based form management system that integrates with any backend, giving you full control over your data with no user limits. Includes support for custom question types, skip logic, an integrated CSS editor, PDF export, real-time analytics, and more.

Learn more

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs