הצהרה באמצעות 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 AndroidEdge MobileFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
Basic supportChrome Full support YesEdge Full support YesFirefox Full support 1IE Full support YesOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 4Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yesnodejs Full support Yes

Legend

Full support  
Full support

ראו גם

Document Tags and Contributors

Contributors to this page: fabio.rahamim
Last updated by: fabio.rahamim,