return

Kończy działanie funkcji i przekazuje wartość do miejsca, w którym funkcję wywołano.

Na tej stronie

Przykład

#
JavaScript
function discountPrice(price, percent) {
  if (percent <= 0) {
    return price
  }
  return price - (price * percent) / 100
}

console.log(discountPrice(200, 25))
console.log(discountPrice(200, 0))
Konsola
150
200

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

#
Składnia
return
return expression

Więcej przykładów

#
Kilka wartości w jednym obiekcie
JavaScript
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)
Konsola
270 90
Pułapka: nowa linia po return
JavaScript
function getBadge() {
  return
  {
    name: 'Pierwsza lekcja'
  }
}

console.log(getBadge())
Konsola
undefined

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 {.

Niejawny return w funkcji strzałkowej
JavaScript
const square = (n) => n * n
const noReturn = (n) => {
  n * n
}

console.log(square(4))
console.log(noReturn(4))
Konsola
16
undefined

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 return na 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

#

Widzisz błąd albo brakuje przykładu? Napisz do nas.