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