MySQL Java JavaScript PHP Python HTML-CSS C-sharp

Funcții săgeată

Funcțiile săgeată (arrow functions) permit scurtarea definiției funcțiilor obișnuite. Funcțiile săgeată sunt definite cu ajutorul operatorului =>, în fața căruia se află parametrii funcției, iar după - corpul efectiv al funcției.

(parametri) => acțiuni_funcție

Pentru exemplu, să luăm mai întâi o funcție obișnuită simplă care afișează un mesaj în consolă:

function hello(){
   console.log("Salut");
}
hello();    // apelăm funcția

Acum să o transformăm într-o funcție săgeată:

const hello = ()=> console.log("Salut");
hello();

În acest caz, funcția săgeată este atribuită constantei hello, prin intermediul căreia putem ulterior apela funcția respectivă.

Aici nu folosim parametri, așa că se specifică parantezele goale ()=> console.log("Salut");

Ulterior, prin intermediul numelui variabilei, putem apela funcția respectivă.

Transmiterea parametrilor

Acum să definim o funcție săgeată care primește un singur parametru:

const print = (mes)=> console.log(mes);
print("Salut FDC.com");
print("Bine ai venit în JavaScript");

Aici, funcția săgeată primește un singur parametru mes, iar valoarea acestuia este afișată în consola browserului.

Dacă funcția săgeată are doar un singur parametru, atunci parantezele în jurul listei de parametri pot fi omise:

const print = mes=> console.log(mes);
print("Salut FDC.com");
print("Bine ai venit în JavaScript");

Un alt exemplu - să transmitem doi parametri:

const sum = (x, y)=> console.log("Suma =", x + y);
sum(1, 2);      // Suma = 3
sum(4, 3);      // Suma = 7
sum(103, 2);    // Suma = 105

Returnarea rezultatului

Pentru a returna o valoare dintr-o funcție săgeată, este suficient să o specificăm după săgeată. De exemplu, să definim o funcție care returnează suma a două numere:

const sum = (x, y) => x + y;

console.log(sum(1, 2));     // 3
console.log(sum(4, 3));     // 7
console.log(sum(102, 5));   // 107

Alt exemplu - să returnăm un șir formatat:

const hello = name => Salut, ${name};

console.log(hello("Tom"));              // Salut, Tom
console.log(hello("Bob"));              // Salut, Bob
console.log(hello("Frodo Baggins"));    // Salut, Frodo Baggins

În acest caz, funcția hello primește un singur parametru name - un nume fictiv și creează un mesaj de salut bazat pe acesta.

Returnarea unui obiect

Merită să acordăm atenție cazului în care o funcție săgeată returnează un obiect:

const user = (userName, userAge) => ({name: userName, age: userAge});

let tom = user("Tom", 34);
let bob = user("Bob", 25);

console.log(tom.name, tom.age);     // "Tom", 34
console.log(bob.name, bob.age);     // "Bob", 25

Obiectul este, de asemenea, definit cu ajutorul acoladelor, dar în acest caz, este inclus în paranteze rotunde.

Funcția cu mai multe instrucțiuni

În exemplele anterioare, toate funcțiile săgeată aveau doar o singură instrucțiune. Dacă însă o funcție trebuie să execute mai multe acțiuni, ele, la fel ca într-o funcție obișnuită, sunt incluse în acolade:

const square = n => {
   const result = n * n;
   console.log(result);
}
 
square(5);     // 25
square(6);     // 36

Și dacă este nevoie să returnezi un rezultat, se folosește operatorul return, la fel ca într-o funcție obișnuită:

const square = n => {
   const result = n * n;
   return result;
}
 
console.log(square(5));     // 25
← Lecția anterioară Lecția următoare →