Node.js
ECMAScript 2015 (ES6) avec Node.js
Recherche…
déclarations const / let
Contrairement à var
, const
/ let
est lié à la portée lexicale plutôt qu’à la portée de la fonction.
{
var x = 1 // will escape the scope
let y = 2 // bound to lexical scope
const z = 3 // bound to lexical scope, constant
}
console.log(x) // 1
console.log(y) // ReferenceError: y is not defined
console.log(z) // ReferenceError: z is not defined
Fonctions de flèche
Les fonctions fléchées se lient automatiquement à la portée lexicale «this» du code environnant.
performSomething(result => {
this.someVariable = result
})
contre
performSomething(function(result) {
this.someVariable = result
}.bind(this))
Exemple de fonction de flèche
Considérons cet exemple, qui produit les carrés des nombres 3, 5 et 7:
let nums = [3, 5, 7]
let squares = nums.map(function (n) {
return n * n
})
console.log(squares)
La fonction transmise à .map
peut également être écrite en tant que fonction flèche en supprimant le mot-clé function
et en ajoutant la flèche =>
:
let nums = [3, 5, 7]
let squares = nums.map((n) => {
return n * n
})
console.log(squares)
Cependant, cela peut être écrit encore plus concis. Si le corps de la fonction se compose d'une seule instruction et que cette instruction calcule la valeur de retour, les accolades de l'enveloppe du corps de la fonction peuvent être supprimées, ainsi que le mot clé return
.
let nums = [3, 5, 7]
let squares = nums.map(n => n * n)
console.log(squares)
déstructurer
let [x,y, ...nums] = [0, 1, 2, 3, 4, 5, 6];
console.log(x, y, nums);
let {a, b, ...props} = {a:1, b:2, c:3, d:{e:4}}
console.log(a, b, props);
let dog = {name: 'fido', age: 3};
let {name:n, age} = dog;
console.log(n, age);
couler
/* @flow */
function product(a: number, b: number){
return a * b;
}
const b = 3;
let c = [1,2,3,,{}];
let d = 3;
import request from 'request';
request('http://dev.markitondemand.com/MODApis/Api/v2/Quote/json?symbol=AAPL', (err, res, payload)=>{
payload = JSON.parse(payload);
let {LastPrice} = payload;
console.log(LastPrice);
});
Classe ES6
class Mammel {
constructor(legs){
this.legs = legs;
}
eat(){
console.log('eating...');
}
static count(){
console.log('static count...');
}
}
class Dog extends Mammel{
constructor(name, legs){
super(legs);
this.name = name;
}
sleep(){
super.eat();
console.log('sleeping');
}
}
let d = new Dog('fido', 4);
d.sleep();
d.eat();
console.log('d', d);
Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow