return
Kończy działanie funkcji i przekazuje wartość do miejsca, w którym funkcję wywołano.
Przykład
#function discountPrice(price, percent) {
if (percent <= 0) {
return price
}
return price - (price * percent) / 100
}
console.log(discountPrice(200, 25))
console.log(discountPrice(200, 0))Definicja i zastosowanie
#Instrukcja return natychmiast kończy funkcję. Wartość zapisana po niej staje się wynikiem wywołania, który możesz przypisać do zmiennej albo przekazać dalej. Kod za wykonanym return już się nie uruchomi.
Funkcja bez return, albo z samym return bez wartości, zwraca undefined. Zwrócić można tylko jedną wartość, ale może to być tablica lub obiekt, które potem rozpakujesz przez destrukturyzację.
Uważaj na znak nowej linii. Jeśli wartość zaczyna się dopiero w kolejnym wierszu, JavaScript wstawi średnik zaraz po return i funkcja zwróci undefined. Wieloliniowe wyrażenie zacznij w tej samej linii, np. od nawiasu: return (.
Składnia
#return
return expressionWięcej przykładów
#function stats(points) {
const total = points.reduce((sum, p) => sum + p, 0)
return { total, average: total / points.length }
}
const { total, average } = stats([80, 90, 100])
console.log(total, average)function getBadge() {
return
{
name: 'Pierwsza lekcja'
}
}
console.log(getBadge())JavaScript automatycznie wstawia średnik po samotnym return, więc obiekt poniżej nigdy nie zostanie zwrócony. Otwierającą klamrę trzymaj w tej samej linii: return {.
const square = (n) => n * n
const noReturn = (n) => {
n * n
}
console.log(square(4))
console.log(noReturn(4))Obsługa przeglądarek
#Szeroko dostępne
Działa we wszystkich nowoczesnych przeglądarkach, także na telefonach. Możesz używać bez obaw.
- Chrome
- Edge
- Firefox
- Safari
Dobre praktyki
#- Wczesny
returnna początku funkcji obsługuje błędne przypadki i zmniejsza zagnieżdżenie kodu. - Pilnuj, żeby wszystkie ścieżki funkcji zwracały ten sam rodzaj wartości. Funkcja, która raz zwraca liczbę, a raz
undefined, łatwo psuje dalsze obliczenia.
Powiązane hasła
#- functionDeklaruje nazwaną funkcję: blok kodu z parametrami, który można wywoływać wiele razy i który może zwrócić wynik.
- () => {}Funkcja strzałkowa (arrow function): krótszy zapis funkcji, bez własnego this, z niejawnym return dla jednego wyrażenia.
- if...elseWykonuje blok kodu tylko wtedy, gdy warunek jest prawdziwy, a w przeciwnym razie opcjonalny blok else.
- DestrukturyzacjaDestrukturyzacja (destructuring) wyciąga wartości z tablic i obiektów prosto do osobnych zmiennych.
Widzisz błąd albo brakuje przykładu? Napisz do nas.