HTML: Markup language
CSS: Styling language
JavaScript: Scripting language
Web APIs: Programming interfaces
All web technology
Learn web development
Discover our tools
Get to know MDN better
此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。
View in English Always switch to English
当某个地方引用了一个不存在的变量时,就会出现“variable is not defined”JavaScript 异常。
ReferenceError: "x" is not defined (V8-based & Firefox) ReferenceError: Can't find variable: x (Safari)
ReferenceError。
ReferenceError
在某处引用了一个不存在的变量。需要声明该变量,或确保它在当前脚本或作用域中可用。
备注:在加载库(例如 jQuery)时,确保在访问库变量(例如“$”)之前先加载该库。将加载库的 <script> 元素放在使用该库的代码之前。
<script>
foo.substring(1); // ReferenceError: foo is not defined
“foo”变量在任何地方都没有定义。它需要是一个字符串,以便 String.prototype.substring() 方法能够正常工作。
String.prototype.substring()
const foo = "bar"; foo.substring(1); // "ar"
变量需要在当前执行上下文中可用。在函数内部定义的变量无法在函数外部访问,因为该变量只在函数的作用域内定义。
function numbers() { const num1 = 2; const num2 = 3; return num1 + num2; } console.log(num1); // ReferenceError num1 is not defined.
然而,函数可以访问在其定义的作用域内定义的所有变量和函数。换句话说,定义在全局作用域中的函数可以访问在全局作用域中定义的所有变量。
const num1 = 2; const num2 = 3; function numbers() { return num1 + num2; } console.log(numbers()); // 5