Avec l'utilisation de let, la portée de la variable est limitée au bloc dans lequel il appartient (lexical scoping).
let a = 1;
Avec const on peut déclarer des constantes.
const a = 1; a = a*2; // erreur
Par contre, const doit garder la même référence, donc pour un tableau, on peut modifier son contenu:
const a = [1, 2, 3]; a[0] = a[0]*2; // pas d'erreur
let first = 'John'; let last = 'Doe'; let amount = 100; let message = `Cher ${first} ${last}, votre solde est de ${amount} dollars.`;
var cars = ['Toyota', 'Ferrari', 'BMW']; // forEach() de ES5 et ES6 cars.forEach(function(car) { console.log(car); )}; // Dans ES6, opérateur 'of' for(var value of cars) { console.log(value); }
On peut exporter des fonctions d'un module, par exemple hello() du module person:
// Fichier: lib/person.js module 'person' { export function hello(name) { return name; } }
Ensuite, on peut importer hello() :
// Fichier: app.js import { hello } from 'person';
On peut déclarer des fonctions anonymes de façon plus concise en utilisant le fat arrow (=>).
La référence à this n'a alors pas le même contexte que dans ES5.
function Person() {
this.age = 0;
setInterval(() => {
this.age++;
console.log(this.age);
}, 1000);
}
var p = new Person();