2704. JavaScript - ES6
ES6


ECMAScript 6 is also known as ES6 and ECMAScript 2015.

1. Constants

const TAX = 0.06;

2. Block Scoped Variables and Functions

var vs let

function varTest() {
var x = 31;
if (true) {
var x = 71; // same variable!
console.log(x); // 71
}
console.log(x); // 71
}
function letTest() {
let x = 31;
if (true) {
let x = 71; // different variable
console.log(x); // 71
}
console.log(x); // 31
}

3. Arrow Functions

// ES5
var multiply = function(x, y) {
return x * y;
}
// ES6
var multiply = (x, y) => { return x * y };

4. Default Parameter Values

function multiply(a = 10, b = 20){
return a * b;
}
console.log(multiply(1,2)); // print 2
console.log(multiply(1)); // print 20
console.log(multiply()); // print 200

5. Rest Parameters

function multiply(...a){
var result = 1;
for (let arg in a){
result = result * a[arg];
}
return result;
}
console.log(multiply(5,6)); // print 30
console.log(multiply(5,6,2)); // print 60

6. String Interpolation

The interpolation only works with the new quote character ` used for template literals. It doesn’t work with strings enclosed in the usual quotes " and '.

var person = {name: "julie", city: "atlanta"};
console.log(person.name);
// works
console.log(`${person.name} lives in ${person.city}`);
// doesnt work
console.log("${person.name} lives in ${person.city}");
console.log('${person.name} lives in ${person.city}');

output

produces this output:
julie
julie lives in atlanta
${person.name} lives in ${person.city}
${person.name} lives in ${person.city}

7. Modules

7.1 Named Exports

Module js file mymath.js

export const sqrt = Math.sqrt;
export function square(x) {
return x * x;
}
export function diag(x, y) {
return sqrt(square(x) + square(y));
}

Usage

import { square, diag } from 'mymath';
console.log(square(11)); // print 121
console.log(diag(4, 3)); // print 5

7.2 Default Exports

Module js file mymath.js

export default function square(x) {
return x * x;
}

usage, the name sq doesn’t match the function in the module. Using default exports allows you to use “nicknames”.

import sq from 'mymath';
sq();

8. Reference