MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

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)

相关链接

文档标签和贡献者

标签: 
 此页面的贡献者: Ende93, AlexChao
 最后编辑者: Ende93,