return
return
return语句
终止函数的执行,并返回一个指定的值给函数调用者。
语法
return [[expression]];
expression
被返回的表达式。如果忽略,则返回 undefined
。
描述
当在函数体中使用return
语句时,函数将会停止执行。如果指定一个值,则这个值返回给函数调用者。例如,以下函数返回其参数x
的平方,其中x
是数字。如果省略该值,则返回undefined
。
return;
return true;
return false;
return x;
return x + y / 3;
自动插入分号
自动插入分号(ASI) 规则会影响 return
语句。在return
关键字和被返回的表达式之间不允许使用行终止符。
return
a + b;
根据 ASI,被转换为:
return;
a + b;
控制台会警告“unreachable code after return statement”。
从 Gecko 40 (Firefox 40 / Thunderbird 40 / SeaMonkey 2.37)开始,如果在一个 return 语句后发现无法访问的代码,控制台将会显示一个警告。
示例
返回
下面的函数返回它的参数的平方x
,其中x
是一个数字。
function square(x) {
return x * x;
}
中断一个函数的执行
函数将会在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
返回一个函数
另见关于闭包的文章。
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)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 | |
浏览器兼容性
Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
Feature | Android | Chrome for Android | Edge | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|---|
Basic support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |