Zoeken…


const / let verklaringen

In tegenstelling tot var , is const / let gebonden aan lexicale scope in plaats van functionele scope.

{
  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

Uitvoeren in RunKit

Arrow functies

Pijlfuncties binden automatisch aan het 'dit' lexicale bereik van de omringende code.

performSomething(result => {
  this.someVariable = result
})

vs

performSomething(function(result) {
  this.someVariable = result
}.bind(this))

Voorbeeld pijlfunctie

Laten we dit voorbeeld bekijken, dat de vierkanten van de getallen 3, 5 en 7 uitvoert:

let nums = [3, 5, 7]
let squares = nums.map(function (n) {
  return n * n
})
console.log(squares)

Uitvoeren in RunKit

De functie die wordt doorgegeven aan .map kan ook worden geschreven als .map door het function verwijderen en in plaats daarvan de pijl => toe te voegen:

let nums = [3, 5, 7]
let squares = nums.map((n) => {
  return n * n
})
console.log(squares)

Uitvoeren in RunKit

Dit kan echter nog bondiger worden geschreven. Als de functie lichaam bestaat uit slechts één instructie en die verklaring berekent de retourwaarde kan de accolades van het wikkelen van de functie lichaam worden verwijderd, evenals de return zoekwoord.

let nums = [3, 5, 7]
let squares = nums.map(n => n * n)
console.log(squares)

Uitvoeren in RunKit

destructurering

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

stromen

/* @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);
});

ES6 Klasse

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
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow