Node.js
ECMAScript 2015 (ES6) с Node.js
Поиск…
const / let объявления
В отличие от var
, const
/ let
привязаны к лексической области, а не к сфере действия.
{
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
Функции стрелок
Функции стрелки автоматически привязываются к «этой» лексической области окружающего кода.
performSomething(result => {
this.someVariable = result
})
против
performSomething(function(result) {
this.someVariable = result
}.bind(this))
Пример функции стрелки
Рассмотрим этот пример, который выводит квадраты чисел 3, 5 и 7:
let nums = [3, 5, 7]
let squares = nums.map(function (n) {
return n * n
})
console.log(squares)
Функция, переданная в .map
также может быть записана как функция стрелки, удалив ключевое слово function
и вместо этого добавив стрелку =>
:
let nums = [3, 5, 7]
let squares = nums.map((n) => {
return n * n
})
console.log(squares)
Однако это может быть написано еще более кратким. Если тело функции состоит только из одного оператора, и этот оператор вычисляет возвращаемое значение, фигурные скобки обертывания тела функции могут быть удалены, а также ключевое слово return
.
let nums = [3, 5, 7]
let squares = nums.map(n => n * n)
console.log(squares)
деструктурирующий
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);
течь
/* @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
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
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow