function fun1(f) { if (f > 0) return 1; if (f < 0) return -1; return 0; } Przedstawiona funkcja zapisana w języku JavaScript ma za zadanie
function fun1(f) { if (f > 0) return 1; if (f < 0) return -1; return 0; }Przedstawiona funkcja zapisana w języku JavaScript ma za zadanie
return.Funkcja zwraca znak liczby: 1 dla liczby dodatniej, -1 dla ujemnej i 0 dla zera. Instrukcja return kończy funkcję i oddaje wartość do miejsca wywołania, więc przy fun1(-7) wykonanie zatrzymuje się na drugim warunku z wynikiem -1. Ostatnie return 0; wykona się tylko wtedy, gdy żaden warunek nie był spełniony, czyli dla zera.
Wynik trzeba samemu wykorzystać, na przykład let z = fun1(x); albo console.log(fun1(x));. JavaScript ma do tego gotową funkcję Math.sign(). Do zapamiętania: return zwraca, a wypisuje dopiero console.log(), document.write() albo zmiana treści elementu strony.
Rozróżnienie „wypisać” i „zwrócić” rozstrzyga połowę odpowiedzi. W funkcji nie ma console.log(), alert() ani document.write(), więc nic nie pojawi się na ekranie. Funkcja tylko oddaje wynik instrukcją return, a co się z nim stanie, decyduje kod wywołujący.
Druga część pomyłek to wartość bezwzględna. Ta zwracałaby liczbę bez znaku, na przykład 7 dla -7 albo 3,5 dla 3,5. Analizowana funkcja niezależnie od wielkości liczby zwraca tylko jedną z trzech wartości: 1, -1 albo 0, czyli informuje o znaku, a nie o odległości od zera.
Łatwo to sprawdzić, podstawiając liczby: fun1(5) daje 1, fun1(-5) daje -1, a fun1(0) daje 0. Funkcja zwraca więc znak liczby f.
Ta sama analiza pomaga przy każdej funkcji: najpierw sprawdź, czy wynik jest zwracany, czy wypisywany, a potem podstaw kilka wartości.