在线文档教程
JavaScript
错误 | Errors

Errors: Undeclared var

Errors: Undeclared var

信息

ReferenceError: assignment to undeclared variable "x" (Firefox) ReferenceError: "x" is not defined (Chrome) ReferenceError: Variable undefined in strict mode (Edge)

错误类型

ReferenceError 仅在严格模式下警告。

哪里出错了?

值已被分配给未声明的变量。换句话说,有一个没有var关键字的赋值。声明和未声明的变量之间有一些区别,这可能会导致意外的结果,这就是为什么JavaScript在严格模式下出现错误。

关于声明和未声明的变量有三点需要注意:

  • 声明的变量在声明它们的执行上下文中受到约束。未声明的变量总是全局的。

  • 声明的变量是在任何代码执行之前创建的。未声明的变量在分配给它们的代码执行之前不存在。

  • 声明的变量是其执行上下文(函数或全局)的不可配置属性。未声明的变量是可配置的(例如可以被删除)。

有关更多详细信息和示例,请参阅var参考页面。

关于未声明的变量赋值的错误仅出现在严格模式代码中。在非严格的代码中,他们可被忽略。

示例

无效的情况

在这种情况下,变量“bar”是一个未声明的变量。

function foo() { 'use strict'; bar = true; } foo( // ReferenceError: assignment to undeclared variable bar

有效的情况

要使“bar”成为声明的变量,可以var在其前面添加关键字。

function foo() { 'use strict'; var bar = true; } foo(