מילת המפתח להחזרה

משתמשים ב-return כדי לציין את הערך שהפונקציה צריכה לייצר כערך סופי תוצאה אחת. כשכלי התרגום מגיע להצהרה return, הפונקציה מכיל את ההצהרה הזו מסתיים באופן מיידי, והערך שצוין מוחזר אל ההקשר שבו הפונקציה נקראה:

const myFunction = function() {
   
return 2 + 2;
}

myFunction
();
> 4

אפשר להתייחס באופן יעיל לפונקציה שמחזירה ערך כאל הנתונים שהוא מכיל, בדומה למשתנה:

const myFunction = function() {
   
return 2 + 2;
}

myFunction
() + myFunction();
> 8

הצהרת return ללא ביטוי גורמת לסיום הפונקציה ומחזירה undefined:

const myFunction = function() {
   
return;
}

myFunction
();
> undefined

מילת המפתח return מסמנת את סוף הפונקציה, לכן כל קוד עוקב אחר ש-return נתקל בו לא מופעל:

const myFunction = function() {
   
return true;
   console
.log( "This is a string." );
}

myFunction
();
> true

בנוסף, קוד שמופיע אחרי הצהרת return עלול לגרום אזהרה (אבל לא שגיאה) בחלק מהדפדפנים מסופי פיתוח:

const myFunction = function() {
   
return true;
   console
.log( "This is a string." );
}
> unreachable code after return statement

myFunction
();
> true

שוב, הכלל הזה רלוונטי רק להצהרה מסוג return שהתרחשה במהלך הפעלת הפונקציה, ולא כל קוד שעוקב אחרי הצהרת 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."

"Short Cuiting" פונקציה שמשתמשת ב-return בשלבי פיתוח מוקדמים יכולה לספק נתונים תמציתיים יותר מאשר הצהרת return אחת בסוף פונקציה. לדוגמה, הפונקציה הבאה קובעת אם ערך שהועבר הוא מחרוזת שמכילה חמישה או יותר תווים. אם הערך שהועבר אינו ליטרל של מחרוזת, הקוד סופרת את התווים שאין בהם צורך, והפונקציה יכולה להחזיר 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

ביטויים של פונקציות חיצים הן ייחודיות כי מילת המפתח return משתמעת כשגוף של פונקציית חץ מכיל ביטוי יחיד ואין תחביר בלוקים:

const myFunction = () => 2 + 2;

myFunction
();
> 4

אם משתמשים בתחביר בלוק כדי להגדיר את גוף פונקציית החץ, מופיע רכיב return מפורש זהו שדה חובה, גם אם גוף הפונקציה מכיל רק ביטוי אחד:

const myFunction = () => { 2 + 2 };

myFunction
();
> undefined
const myFunction = () => { return 2 + 2 };

myFunction
();
> 4

בדיקת ההבנה

למה משמש return?

החזרת הקוד לתחילת הפונקציה.
ציון התוצאה הסופית של פונקציה.