Node.js
ECMAScript 2015 (ES6) mit Node.js
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
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)
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)
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)
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