Movatterモバイル変換


[0]ホーム

URL:


  1. 面向开发者的 Web 技术
  2. JavaScript
  3. JavaScript 参考
  4. JavaScript 错误参考
  5. ReferenceError: "x" is not defined

此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in EnglishAlways switch to English

ReferenceError: "x" is not defined

当某个地方引用了一个不存在的变量时,就会出现“variable is not defined”JavaScript 异常。

错误信息

ReferenceError: "x" is not defined (V8-based & Firefox)ReferenceError: Can't find variable: x (Safari)

错误类型

ReferenceError

什么地方出错了?

在某处引用了一个不存在的变量。需要声明该变量,或确保它在当前脚本或作用域中可用。

备注:在加载库(例如 jQuery)时,确保在访问库变量(例如“$”)之前先加载该库。将加载库的<script> 元素放在使用该库的代码之前。

示例

未声明的变量

js
foo.substring(1); // ReferenceError: foo is not defined

“foo”变量在任何地方都没有定义。它需要是一个字符串,以便String.prototype.substring() 方法能够正常工作。

js
const foo = "bar";foo.substring(1); // "ar"

错误的作用域

变量需要在当前执行上下文中可用。在函数内部定义的变量无法在函数外部访问,因为该变量只在函数的作用域内定义。

js
function numbers() {  const num1 = 2;  const num2 = 3;  return num1 + num2;}console.log(num1); // ReferenceError num1 is not defined.

然而,函数可以访问在其定义的作用域内定义的所有变量和函数。换句话说,定义在全局作用域中的函数可以访问在全局作用域中定义的所有变量。

js
const num1 = 2;const num2 = 3;function numbers() {  return num1 + num2;}console.log(numbers()); // 5

参见

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp