Our volunteers haven't translated this article into عربي yet. Join us and help get the job done!
You can also read the article in English (US).
The return
statement ends function execution and specifies a value to be returned to the function caller.
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
Syntax
return [[expression]];
expression
- The expression whose value is to be returned. If omitted,
undefined
is returned instead.
Description
When a return
statement is used in a function body, the execution of the function is stopped. If specified, a given value is returned to the function caller. For example, the following function returns the square of its argument, x
, where x
is a number.
function square(x) { return x * x; } var demo = square(3); // demo will equal 9
If the value is omitted, undefined
is returned instead.
The following return statements all break the function execution:
return; return true; return false; return x; return x + y / 3;
Automatic Semicolon Insertion
The return
statement is affected by automatic semicolon insertion (ASI). No line terminator is allowed between the return
keyword and the expression.
return a + b;
is transformed by ASI into:
return; a + b;
The console will warn "unreachable code after return statement".
To avoid this problem (to prevent ASI), you could use parentheses:
return ( a + b );
Examples
Interrupt a function
A function immediately stops at the point where return
is called.
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
Returning a function
See also the article about Closures.
function magic() { return function calc(x) { return x * 42; }; } var answer = magic(); answer(1337); // 56154
Specifications
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 |
Browser compatibility
Desktop | Mobile | Server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Basic support | Chrome Full support Yes | Edge Full support Yes | Firefox Full support 1 | IE Full support Yes | Opera Full support Yes | Safari Full support Yes | WebView Android Full support Yes | Chrome Android Full support Yes | Edge Mobile Full support Yes | Firefox Android Full support 4 | Opera Android Full support Yes | Safari iOS Full support Yes | Samsung Internet Android Full support Yes | nodejs Full support Yes |
Legend
- Full support
- Full support