Suche…


const / let Deklarationen

Im Gegensatz zu var sind const / let eher an den lexikalischen als an den Funktionsumfang gebunden.

{
  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

Führen Sie RunKit aus

Pfeilfunktionen

Pfeilfunktionen binden sich automatisch an den lexikalischen Bereich dieses Codes.

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

vs

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

Pfeil Funktionsbeispiel

Betrachten wir dieses Beispiel, das die Quadrate der Zahlen 3, 5 und 7 ausgibt:

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

Führen Sie RunKit aus

Die an .map Funktion kann auch als .map geschrieben werden, indem das function und stattdessen der Pfeil => hinzugefügt wird:

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

Führen Sie RunKit aus

Dies kann jedoch noch präziser geschrieben werden. Wenn der Funktionskörper nur aus einer Anweisung besteht und diese den Rückgabewert berechnet, können die geschweiften Klammern des Umschließens des Funktionskörpers sowie das Schlüsselwort return .

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

Führen Sie RunKit aus

Zerstörung

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

fließen

/* @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
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow