## 消息提示

    ReferenceError: assignment to undeclared variable "x" (Firefox)

## 错误类型

`ReferenceError`

## 哪里出错了？

词法变量在初始化之前被访问。该错误可以发生于任何语句块中，当使用 let 或 const 修饰的变量在初始化之前被访问的时候。

## 示例

### 非法情况

在这个例子中，变量 "foo" 在语句块中再次声明，导致未初始化。

    function test(){
       let foo = 33;
       if (true) {
          let foo = (foo + 55); // ReferenceError: can't access lexical declaration `foo' before initialization
       }
    }
    test();

### 正确情况

在 if 语句块中修改变量 "foo" 的值，不应该在其中进行二次声明。

    function test(){
       let foo = 33;
       if (true) {
          foo = (foo + 55);
       }
    }
    test();

## 相关内容

- let 的暂存死区及相关错误