return
语句终止函数的执行,并返回一个指定的值给函数调用者。
语法
return [[expression]];
expression
- 被返回的表达式。如果忽略,则返回
undefined
。
描述
当在一个函数里面执行 return
语句时,该函数将会停止执行。一个指定的值将会被返回给函数调用者。如果未指定返回表达式,则返回 undefined
。下面的 return 语句都会终止函数的执行:
return; return true; return false; return x; return x + y / 3;
自动插入分号
自动分号插入点[automatic semicolon insertion (ASI)] 规则会影响 return
语句。在 return
关键字和被返回的表达式之间没有行结束符(line terminator)。
return a + b;
根据 ASI,被转换为:
return; a + b;
控制台会警告“unreachable code after return statement”。
从 Gecko 40 (Firefox 40 / Thunderbird 40 / SeaMonkey 2.37)开始,,如果在一个 return 语句后发现无法访问的代码,控制台将会显示一个警告。
示例
return
下面的函数返回其参数 x
的平方,其中 x
是一个数值。
function square(x) { return x * x; }
示例:中断一个函数的执行
函数将会在 return 语句执行后立即中止。
function counter() { for (var count = 1; ; count++) { // 无限循环 console.log(count + "A"); // 执行5次 if (count === 5) { return; } console.log(count + "B"); // 执行4次 } console.log(count + "C"); // 永远不会执行 } counter(); // Output: // 1A // 1B // 2A // 2B // 3A // 3B // 4A // 4B // 5A
返回一个函数
要了解关于闭包的内容,可阅读闭包。
function magic(x) { 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) Return statement |
Standard | |
ECMAScript 2015 (6th Edition, ECMA-262) Return statement |
Standard | |
ECMAScript 2017 Draft (ECMA-262) Return statement |
Draft |
浏览器兼容性
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |