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