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

Exécuter dans RunKit

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)

Exécuter dans RunKit

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)

Exécuter dans RunKit

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)

Exécuter dans RunKit

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