Sök…


Introduktion

Med node 6 blir den nya LTS-versionen av noden. Vi kan se ett antal förbättringar av språket genom de nya ES6-standarderna som införs. Vi kommer att gå igenom några av de nya funktioner som introducerats och exempel på hur man implementerar dem.

Standardfunktionsparametrar

function addTwo(a, b = 2) {
    return a + b;
}

addTwo(3) // Returns the result 5

Med tillägget av standardfunktionsparametrar kan du nu göra argument valfria och ha dem som standard till ett värde du väljer.

Restparametrar

function argumentLength(...args) {
    return args.length;
}

argumentLength(5) // returns 1
argumentLength(5, 3) //returns 2
argumentLength(5, 3, 6) //returns 3

Genom att förordna det sista argumentet i din funktion med ... läses alla argument som skickas till funktionen som en matris. I det här exemplet får vi passera in flera argument och får längden på den matris som skapats av dessa argument.

Sprid operatör

function myFunction(x, y, z) { }
var args = [0, 1, 2];
myFunction(...args);

Spridningssyntaxen tillåter ett uttryck att utvidgas på platser där flera argument (för funktionssamtal) eller flera element (för matrisk bokstäver) eller flera variabler förväntas. Precis som viloparametrarna förordar du helt enkelt din matris med ...

Pilfunktioner

Pilfunktion är det nya sättet att definiera en funktion i 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;
}

"detta" i pilfunktionen

denna i funktion hänvisar till instansobjekt som används för att kalla den funktionen men denna i pilfunktionen är lika med denna för funktion där pilfunktionen definieras.

Låt oss förstå att använda diagram lexikalisk omfattning av detta i pilfunktionen

Förståelse med hjälp av exempel.

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

I pilfunktionen är detta lexikalisk omfattning som är funktionens omfattning där pilfunktionen definieras.
Det första exemplet är det traditionella sättet att definierar funktioner och följaktligen hänvisar detta till den globala / fönsterobjekt.
I det andra exemplet här används inuti pilen funktion hence denna avser räckvidden där den är definierad (som är fönster eller globala objektet). I det tredje exemplet är detta serviceobjekt eftersom serviceobjekt används för att ringa funktionen.
I det fjärde exemplet, pilfunktion i definierad och anropad från funktionen vars omfattning är tjänst , därmed skriver den ut serviceobjekt .

Obs: - globalt objekt skrivs ut i Node.Js och windows-objekt i webbläsaren.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow