return

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

תחביר

return [[expression]]; 
expression
הביטוי שערכו יוחזר. במידה והביטוי לא הוזכר, הערך undefined יוחזר במקומו.

תיאור

השימוש בהצהרה return בגוף הפונקציה, יפסיק את תהליך הריצה שלה.
לדוגמה, לפונקציה ()square ארגומנט בשם x, כאשר x יהיה מספר הפונקציה תחזיר את הערך של הארגומנט כפול עצמו.

function square(x) {
   return x * x;
}
var demo = square(3);
// demo will equal 9

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

return;
return true;
return false;
return x;
return x + y / 3;

הוספת נקודה פסיק באופן אוטומטי

להצהרה באמצעות return מתווספת באופן אוטומטי נקודה פסיק (ASI).
אין לקשר בין שורת ההצהרה של return לביטוי .

return
a + b;
return; 
a + b;

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

return (
  a + b
);

דוגמאות

עצירת הפונקציה

הפונקציה נעצרת מיד בעת הקריאה ל-return.

function counter() {
  for (var count = 1; ; count++) {  // infinite loop
    console.log(count + 'A'); // until 5
      if (count === 5) {          
        return;
      }
      console.log(count + 'B');  // until 4
    }
  console.log(count + 'C');  // never appears
}

counter();

// Output:
// 1A
// 1B
// 2A
// 2B
// 3A
// 3B
// 4A
// 4B
// 5A

החזרת פונקציה

ראו את המאמר הבא בנושא Closures.

function magic() {
  return function calc(x) { return x * 42; };
}

var answer = magic();
answer(1337); // 56154

מפרט

Specification Status Comment
ECMAScript 1st Edition (ECMA-262) Standard Initial definition.
ECMAScript 5.1 (ECMA-262)
The definition of 'Return statement' in that specification.
Standard  
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Return statement' in that specification.
Standard  
ECMAScript Latest Draft (ECMA-262)
The definition of 'Return statement' in that specification.
Draft  

תאימות דפדפן

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
returnChrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 3Opera Full support YesSafari Full support YesWebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support 1.0nodejs Full support Yes

Legend

Full support  
Full support

ראו גם