Node.js
Node.js v6 Nuove funzionalità e miglioramenti
Ricerca…
introduzione
Con il nodo 6 diventa la nuova versione LTS del nodo. Possiamo vedere una serie di miglioramenti alla lingua attraverso i nuovi standard ES6. Passeremo attraverso alcune delle nuove funzionalità introdotte e alcuni esempi su come implementarle.
Parametri funzione predefiniti
function addTwo(a, b = 2) {
return a + b;
}
addTwo(3) // Returns the result 5
Con l'aggiunta di parametri di funzione predefiniti ora puoi rendere opzionali gli argomenti e impostarli come predefiniti su un valore a tua scelta.
Parametri di riposo
function argumentLength(...args) {
return args.length;
}
argumentLength(5) // returns 1
argumentLength(5, 3) //returns 2
argumentLength(5, 3, 6) //returns 3
Prefacendo l'ultimo argomento della tua funzione con ...
tutti gli argomenti passati alla funzione vengono letti come una matrice. In questo esempio otteniamo pass in più argomenti e otteniamo la lunghezza della matrice creata da quegli argomenti.
Spread Operator
function myFunction(x, y, z) { }
var args = [0, 1, 2];
myFunction(...args);
La sintassi di diffusione consente di espandere un'espressione in luoghi in cui sono previsti più argomenti (per chiamate di funzione) o più elementi (per letterali di array) o più variabili. Proprio come i parametri di riposo, semplicemente prefigurano il tuo array con ...
Funzioni della freccia
La funzione Arrow è il nuovo modo di definire una funzione in ECMAScript 6.
// traditional way of declaring and defining function
var sum = function(a,b)
{
return a+b;
}
// Arrow Function
let sum = (a, b)=> a+b;
//Function defination using multiple lines
let checkIfEven = (a) => {
if( a % 2 == 0 )
return true;
else
return false;
}
"questo" in Arrow Function
questa funzione si riferisce ad oggetto istanza utilizzato per chiamare tale funzione ma questa funzione freccia è uguale a questo di funzione in cui è definita la funzione freccia.
Comprensione con esempi.
var normalFn = function(){
console.log(this) // refers to global/window object.
}
var arrowFn = () => console.log(this); // refers to window or global object as function is defined in scope of global/window object
var service = {
constructorFn : function(){
console.log(this); // refers to service as service object used to call method.
var nestedFn = function(){
console.log(this); // refers window or global object because no instance object was used to call this method.
}
nestedFn();
},
arrowFn : function(){
console.log(this); // refers to service as service object was used to call method.
let fn = () => console.log(this); // refers to service object as arrow function defined in function which is called using instance object.
fn();
}
}
// calling defined functions
constructorFn();
arrowFn();
service.constructorFn();
service.arrowFn();
Nella funzione freccia, questo è lo scope lessicale che è l'ambito della funzione in cui è definita la funzione freccia.
Il primo esempio è il modo tradizionale di definire le funzioni e quindi si riferisce all'oggetto globale / finestra .
Nel secondo esempio questo è usato all'interno della funzione freccia, quindi questo si riferisce all'ambito in cui è definito (che è Windows o oggetto globale). Nel terzo esempio si tratta di oggetto di servizio poiché l'oggetto di servizio viene utilizzato per chiamare la funzione.
Nel quarto esempio, la funzione freccia è definita e chiamata dalla funzione il cui ambito è servizio , quindi stampa oggetto servizio .
Nota: - l'oggetto globale viene stampato in Node.Js e l'oggetto Windows nel browser.