阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      JS return

      功能

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

      语法

      return [[expression]];
      

      expression

      表达式的值会被返回。如果忽略,则返回 undefined。

      描述

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

      function square(x) {
         return x * x;
      }
      var demo = square(3);
      // demo will equal 9
      

      如果省略该值,则返回 undefined。

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

      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 语句后发现无法访问的代码,控制台将会显示一个警告。

      示例

      中断一个函数的执行

      函数将会在 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
      

      规范

      SpecificationStatusComment
      ECMAScript 1st Edition (ECMA-262)StandardInitial definition.
      ECMAScript 5.1 (ECMA-262)
      Return statement
      Standard
      ECMAScript 2015 (6th Edition, ECMA-262)
      Return statement
      Standard
      ECMAScript Latest Draft (ECMA-262)
      Return statement
      Draft
      目录
      目录