Użyj return
, aby określić wartość, którą funkcja powinna wygenerować jako końcową
wynik. Gdy interpreter dotrze do instrukcji return
, funkcja, która
zawiera tę instrukcję natychmiast, a określona wartość jest zwracana do
kontekst, w którym funkcja została wywołana:
const myFunction = function() {
return 2 + 2;
}
myFunction();
> 4
Funkcja, która zwraca wartość, może być traktowana jako dane, zawiera (podobnie jak zmienna):
const myFunction = function() {
return 2 + 2;
}
myFunction() + myFunction();
> 8
Instrukcja return
bez wyrażenia kończy funkcję i zwraca
undefined
:
const myFunction = function() {
return;
}
myFunction();
> undefined
Słowo kluczowe return
sygnalizuje koniec funkcji, więc każdy kod, który
występuje, gdy napotkany znacznik return
nie jest wykonywany:
const myFunction = function() {
return true;
console.log( "This is a string." );
}
myFunction();
> true
Dodatkowo kod występujący po napotkanej instrukcji return
może spowodować wyświetlenie wywołania
w niektórych przeglądarkach” konsol programistycznych:
const myFunction = function() {
return true;
console.log( "This is a string." );
}
> unreachable code after return statement
myFunction();
> true
Dotyczy to tylko instrukcji return
napotkanych podczas
wykonania funkcji, a nie żadnego kodu, który następuje po kolei po instrukcji return
:
const myFunction = function( myParameter ) {
if( myParameter === undefined ) {
return "This is the result.";
}
return "This is the alternate result.";
}
myFunction();
> "This is the result."
myFunction( true );
> "This is the alternate result."
„Zwarcie” funkcja wykorzystująca wczesną wersję return
pozwoli na bardziej zwięzłe
niż pojedyncza instrukcja return
na końcu funkcji. Na przykład parametr
poniższa funkcja określa, czy przekazywana wartość jest ciągiem zawierającym pięć
lub więcej znaków. Jeśli przekazywana wartość nie jest literałem ciągu, kod, który
zlicza niepotrzebne znaki, a funkcja może zwrócić false
wynik natychmiast:
function myFunction( myString ) {
if( typeof myString !== "string" ) {
return false;
}
if( myString.length >= 5 ) {
return true;
} else {
return false;
}
}
myFunction( 100 );
> false
myFunction( "St" );
> false
myFunction( "String." );
> true
Wyrażenia funkcji strzałek
są unikalne, ponieważ słowo kluczowe return
jest domniemane, gdy treść funkcji strzałki
zawiera pojedyncze wyrażenie i nie zawiera składni blokowej:
const myFunction = () => 2 + 2;
myFunction();
> 4
Jeśli do definiowania treści funkcji strzałki używasz składni bloku, jawny zapis return
jest wymagane, nawet jeśli treść funkcji zawiera tylko jedno wyrażenie:
const myFunction = () => { 2 + 2 };
myFunction();
> undefined
const myFunction = () => { return 2 + 2 };
myFunction();
> 4
Sprawdź swoją wiedzę
Do czego służy return
?