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 się zakończy, a określona wartość zostanie zwrócona do kontekstu, w którym została wywołana funkcja:
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” może wyświetlić ostrzeżenie (ale nie jest to błąd). 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 funkcja poniżej określa, czy przekazana wartość jest ciągiem znaków zawierającym co najmniej 5 znaków. Jeśli przekazana wartość nie jest ciągiem znaków, kod, który zlicza znaki, jest zbędny, a funkcja może od razu zwrócić wynik false
:
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
?