Ricerca…


const / let dichiarazioni

A differenza di var , const / let sono legati all'ambito lessicale piuttosto che all'ambito della funzione.

{
  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

Esegui in RunKit

Funzioni della freccia

Le funzioni della freccia si associano automaticamente all'ambito lessicale "this" del codice circostante.

performSomething(result => {
  this.someVariable = result
})

vs

performSomething(function(result) {
  this.someVariable = result
}.bind(this))

Esempio di funzione freccia

Consideriamo questo esempio, che emette i quadrati dei numeri 3, 5 e 7:

let nums = [3, 5, 7]
let squares = nums.map(function (n) {
  return n * n
})
console.log(squares)

Esegui in RunKit

La funzione passata a .map può anche essere scritta come funzione di freccia rimuovendo la parola chiave function e aggiungendo invece la freccia => :

let nums = [3, 5, 7]
let squares = nums.map((n) => {
  return n * n
})
console.log(squares)

Esegui in RunKit

Tuttavia, questo può essere scritto in modo ancora più conciso. Se il corpo della funzione è costituito da una sola istruzione e tale istruzione calcola il valore restituito, è possibile rimuovere le parentesi graffe di avvolgere il corpo della funzione e la parola chiave return .

let nums = [3, 5, 7]
let squares = nums.map(n => n * n)
console.log(squares)

Esegui in RunKit

destrutturazione

    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);

flusso

/* @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);
});

Classe 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
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow