Posted on: Written by: K-Sato
⚠️ This article was posted over 2 years ago. The information might be outdated. ⚠️

Table of Contents

Variable declaration with const and let

You can use var, let or const to declare a variable.

Let

Variables declared with let can not be redeclared. But you can reassingn a new value.

let name = 'John'
console.log(name) //=> John

name = 'Mike'
console.log(name) //=> Mike

let name = 'Nick' //=> SyntaxError: redeclaration of let name

Const

Variables declared with const can not be redeclared. And you can not reassingn a new value.

const name = 'John'
console.log(name) //=> John

name = 'Mike' //=> TypeError: invalid assignment to const `name'

const name = 'Nick' //=> SyntaxError: redeclaration of let name

The scope of let and const

The let and const statements declare block scope local variables unlike var.

Example of var

var x = 10
console.log(x) //=>10

{
  var x = 5
  console.log(x) //=>5
}

console.log(x) //=> 5

Example of let

let x = 10
console.log(x) //=>10

{
  let x = 5
  console.log(x) //=>5
}

console.log(x) //=> 10

Example of const

const x = 10
console.log(x) //=> 10

{
  const x = 5
  console.log(x) //=> 5
}

console.log(x) //=> 10

String Interpolation

You can use template literals to read the value of a variable in a string.

let name = 'Mike'

console.log(`I am ${name}`) //=> I am Mike

Arrow function

Arrow Function was introduced in ES6.

ES5 style function

function greeting(name) {
  console.log('Hello' + ' ' + name)
}

greeting('Mike') //=>Hello Mike

ES6 style function

const greeting = name => {
  console.log(`Hello ${name}`)
}

greeting('Mike') //=> Hello Mike

Default parameters

You can assign the default value to an argument.

const add = (x, y = 10) => {
  console.log(x + y)
}

add(5) //=> 15

Class Expression

The class expressiong is syntactical sugar over JavaScript’s existing prototype-based inheritance.

class Car {
  constructor(name) {
    this.name = name
  }

  displayinfo() {
    console.log(this.name)
  }
}

const car1 = new Car('Honda')

car1.displayinfo() //=> Honda

Class Inheritance

Classes can extend one another using extends.

class Car {
  constructor(name) {
    this.name = name
  }

  displayinfo(name) {
    console.log(this.name)
  }
}

class Track extends Car {
  constructor(name) {
    super()
    this.name = name
  }
}

track1 = new Track('TL')
track1.displayinfo() //=> TL

Spread Operator

Here are some usages of the spread operator.

Spread an array

const arr = [2, 3]

console.log(...arr) //=> 2, 3

Combine arrays

const arr = [2, 3]
const arr2 = [1, ...arr, 4, 5]

console.log(arr2) //=> Array(5) [ 1, 2, 3, 4, 5 ]

Get multiple arguments as an array

const arr = (arg1, ...args) => {
  console.log(arg1, args)
}

arr(1, 2, 3, 4, 5) //=> 1 Array(4) [ 2, 3, 4, 5 ]

About the author

I am a web-developer based somewhere on earth. I primarily code in TypeScript, Go and Ruby at work. React, RoR and Gin are my go-to Frameworks.