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

משתמשים ב-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."

'קיצור דרך' של פונקציה באמצעות 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?

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