首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

return

return语句终止函数的执行,并返回一个指定的值给函数调用者。

语法

代码语言:javascript
复制
return [[expression]]; 

expression被返回的表达式。如果忽略,则返回?undefined

描述

当在函数体中使用return语句时,函数将会停止执行。如果指定一个值,则这个值返回给函数调用者。例如,以下函数返回其参数x的平方,其中x是数字。如果省略该值,则返回undefined

下面的 return 语句都会终止函数的执行:

代码语言:javascript
复制
return;
return true;
return false;
return x;
return x + y / 3;

自动插入分号

自动插入分号(ASI)?规则会影响?return语句。在return关键字和被返回的表达式之间不允许使用行终止符。

代码语言:javascript
复制
return
a + b;

根据 ASI,被转换为:

代码语言:javascript
复制
return; 
a + b;

控制台会警告“unreachable code after return statement”。

从 Gecko 40 (Firefox 40 / Thunderbird 40 / SeaMonkey 2.37)开始,如果在一个?return 语句后发现无法访问的代码,控制台将会显示一个警告。

示例

返回

下面的函数返回它的参数的平方x,其中x是一个数字。

代码语言:javascript
复制
function square(x) {
   return x * x;
}

中断一个函数的执行

函数将会在return语句执行后立即中止。

代码语言:javascript
复制
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

返回一个函数

另见关于闭包的文章。

代码语言:javascript
复制
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)

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com