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();