AI Workshop: learn to build apps with AI →
ECMAScript History: ES2016 Features

Join the AI Workshop and learn to build real-world apps with AI. A hands-on, practical program to level up your skills.


ES2016, officially known as ECMAScript 2016, was finalized in June 2016.

Compared to ES2015, ES2016 is a tiny release for JavaScript, containing just two features:

  • Array.prototype.includes
  • Exponentiation Operator

Array.prototype.includes()

This feature introduces a more readable syntax for checking if an array contains an element.

With ES6 and lower, to check if an array contained an element you had to use indexOf, which checks the index in the array, and returns -1 if the element is not there.

Since -1 is evaluated as a true value, you could not do for example

if (![1,2].indexOf(3)) {
  console.log('Not found')
}

With this feature introduced in ES2016 we can do

if (![1,2].includes(3)) {
  console.log('Not found')
}

Exponentiation Operator

The exponentiation operator ** is the equivalent of Math.pow(), but brought into the language instead of being a library function.

Math.pow(4, 2) == 4 ** 2

This feature is a nice addition for math-intensive JavaScript applications.

The ** operator is standardized across many languages, including Python, Ruby, MATLAB, Lua, Perl, and many others.

Lessons in this unit:

0: Introduction
1: What is ECMAScript
2: ES6 / ES2015 Features
3: ▶︎ ES2016 Features
4: ES2017 Features
5: ES2018 Features
6: ES2019 Features