DEV Community

Cover image for ES6: let and const keywords
Naftali Murgor
Naftali Murgor

Posted on

ES6: let and const keywords

Introduction

In this blog article, we shall see various language features, introduced in ES2015(ES6) JavaScript version.

A list of a summary of the language features can be found in this previous ES6 and modern JavaScript.

Let's look at let and const keywords.

1. let, const keywords

In ES6, the var keyword has been deprecated in favor of let and const keywords in variable definition, declaration and initialization.

let is used to declare block-scoped variables.

var pov = 180 // don't use this
let pointOfView = 180 // reassignable, do this
pointOfView = 360 // change
Enter fullscreen mode Exit fullscreen mode

const behaves similarly to let except that once variables are declared and initialized, they may never be reassigned once declared and initialized.

// declare constants using const
const THREAD_COUNT = 18 // must be declared and initialized in one line
const MAX_THREAD_COUNT //  Uncaught SyntaxError: Missing initializer in const declaration 
// somewhere later: 
MAX_THREAD_COUNT = 18 
Enter fullscreen mode Exit fullscreen mode

For object literals, changing values stored in object properties work but reassigning the declared object throws an error.

const hero = {
  name: 'Naruto',
  age: 15,
  jutsu: 'shadow clone justsu',
  residence: 'Hidded Leaf Village'
}
Enter fullscreen mode Exit fullscreen mode

hero.name = 'Sasuke' alters the value stored in object property name of the hero object. However, reassigning the object like:

// reassigning the variable
// Uncaught TypeError: Assignment to constant variable.
hero = {
  name: 'Sasuke',
  age: 15,
  jutsu: 'Fireball Jutsu',
  residence: 'Hidden Leaf village'
}
Enter fullscreen mode Exit fullscreen mode

Summary

ES6 introduces let and const keywords in place of var keyword in declaration and initialization of constants and variables.

Use let to declare a variable that will change/be reassigned later and const for constants that are unlikely to change as the program executes.

Read more about 👉 Arrow functions

Discussion (0)