Întrebări Grilă - Programare Funcțională în JavaScript
1. Ce valoare va afișa consola în următorul cod?
function makeMultiplier(x) {
return function(y) {
return x * y;
};
const double = makeMultiplier(2);
[Link](double(5));
A) 2
B) 10
C) 7
D) undefined
Răspuns corect: B
2. Ce va returna funcția `addArrayElements`?
function splat(fun) {
return function(array) {
return [Link](null, array);
};
var addArrayElements = splat(function(x, y) { return x + y });
addArrayElements([3, 4]);
A) 7
B) 34
C) undefined
D) function
Răspuns corect: A
3. Ce se întâmplă la executarea următorului cod?
Întrebări Grilă - Programare Funcțională în JavaScript
var a = 10;
function test() {
[Link](a);
var a = 5;
test();
A) 10
B) 5
C) undefined
D) eroare
Răspuns corect: C
4. Ce face funcția următoare?
function trampoline(fn) {
return function(...args) {
let result = fn(...args);
while (typeof result === 'function') {
result = result();
return result;
};
A) Execută recursiv o funcție fără a umple stiva.
B) Transformă o funcție în obiect.
C) Execută o funcție o singură dată.
D) Împiedică apelarea unei funcții dacă returnează o altă funcție.
Răspuns corect: A
5. Ce va afișa următorul cod?
var obj = {
Întrebări Grilă - Programare Funcțională în JavaScript
name: "test",
getName: function() {
return [Link];
};
var get = [Link];
[Link](get());
A) test
B) undefined
C) eroare
D) [object Object]
Răspuns corect: B
6. Ce rezultat returnează următoarea funcție?
function leftCurryDiv(n) {
return function(d) {
return n / d;
};
const divide10By = leftCurryDiv(10);
divide10By(2);
A) 0.2
B) 5
C) 2
D) undefined
Răspuns corect: B
7. Ce face funcția `_.tap` în acest exemplu?
_.chain([1, 2, 3])
.map(x => x * 2)
Întrebări Grilă - Programare Funcțională în JavaScript
.tap(arr => [Link]("DEBUG:", arr))
.value();
A) Modifică array-ul după map.
B) Execută o funcție cu array-ul, fără a-i modifica valoarea.
C) Filtrează array-ul.
D) Întrerupe execuția lanțului.
Răspuns corect: B
8. Ce rezultă din apelul următor?
function makeAdder(x) {
return function(y) {
return x + y;
};
[Link](makeAdder(3)(4));
A) 7
B) 34
C) undefined
D) NaN
Răspuns corect: A