Node.js
ECMAScript 2015 (ES6) med Node.js
Sök…
const / let deklarationer
Till skillnad från var
är const
/ let
bunden till lexikalisk omfattning snarare än funktionsomfång.
{
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
Pilfunktioner
Pilfunktioner binder automatiskt till det "lexikala" omfånget för den omgivande koden.
performSomething(result => {
this.someVariable = result
})
mot
performSomething(function(result) {
this.someVariable = result
}.bind(this))
Exempel på pilfunktion
Låt oss överväga detta exempel, som matar ut kvadraten för siffrorna 3, 5 och 7:
let nums = [3, 5, 7]
let squares = nums.map(function (n) {
return n * n
})
console.log(squares)
Funktionen som skickas till .map
kan också skrivas som pilfunktion genom att ta bort function
och istället lägga till pilen =>
:
let nums = [3, 5, 7]
let squares = nums.map((n) => {
return n * n
})
console.log(squares)
Detta kan emellertid skrivas ännu mer kortfattat. Om funktionen kroppen består av endast ett uttalande och uttalandet beräknar returvärdet kan klammerparenteserna för inslagning funktionen kroppen tas bort, liksom return
sökord.
let nums = [3, 5, 7]
let squares = nums.map(n => n * n)
console.log(squares)
destrukturering
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);
strömma
/* @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 klass
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
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow