## 信息

    Warning: unreachable code after return statement (Firefox)

## 错误类型

警告

## 什么地方出错了?

在`return`语句之后的不可达的语句会在下列情形中产生：

- 在`return` 语句之后出现其他表达式；
- 在省略分号的return语句之后直接接一个表达式。

当一个表达式出现在一个有效的 `return` 表达式之后时，会出现这个警告，用以说明在 `return` 语句之后的表达式不可达，即这条语句之后的表达式永远不会运行。

为什么我需要在 `return` 语句之后添加分号？在省略分号的 `return` 语句之后，开发者想要终止当前函数的执行还是返回return之后表达式的结果的意图是不明确的。这个警告表明这种情况下 `return` 语句的表述具有二义性。

当在省略分号的return语句之后出现下列语句时，不会出现警告：

- `throw`
- `break`
- `var`
- `function`

## 示例

### 无效的例子

    function f() {
      var x = 3;
      x += 4;
      return x;   // return 语句立即退出当前方法
      x -= 3;     // 因而该语句从不会执行，即该语句为不可达语句
    }

    function f() {
      return     // 这条语句被视作 `return;`
        3 + 4;   // 因而此处该函数已经返回，该语句永不会执行
    }

### 合适的例子

    function f() {
      var x = 3;
      x += 4;
      x -= 3;
      return x;  // OK: 执行完成所有语句之后返回
    }

    function f() {
      return 3 + 4  // OK: 省略分号的 return 语句与执行的表达式在同一行
    }

## 相关页面

- Automatic Semicolon Insertion