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

View in English Always switch to English

ReferenceError

基线 广泛可用 *

自 2015年7月 起,此特性已在主流浏览器中得到支持,可在大多数设备和浏览器版本中正常使用。

* 此特性的某些部分的支持程度可能有所不同。

ReferenceError(引用错误)对象代表当一个不存在(或尚未初始化)的变量被引用时发生的错误。

ReferenceError 是一个可序列化对象,所以可以使用 structuredClone() 对它进行克隆,也可以使用 postMessage()Worker 之间拷贝它。

构造函数

ReferenceError()

创建一个新的 ReferenceError 对象。

实例属性

Error.prototype.message

错误消息。继承自 Error

Error.prototype.name

错误名称。继承自 Error

Error.prototype.cause

表示导致当前错误被抛出的原因。继承自 Error

Error.prototype.fileName

引发此错误的文件的路径。继承自 Error

Error.prototype.lineNumber

引发此错误的代码所在的文件的行号。继���自 Error

Error.prototype.columnNumber

引发此错误的代码在文件中所在行的列号。继承自 Error

Error.prototype.stack

堆栈跟踪。继承自 Error

示例

捕获一个 ReferenceError

js
try {
  let a = undefinedVariable;
} catch (e) {
  console.log(e instanceof ReferenceError); // true
  console.log(e.message); // "undefinedVariable is not defined"
  console.log(e.name); // "ReferenceError"
  console.log(e.fileName); // "Scratchpad/1"
  console.log(e.lineNumber); // 2
  console.log(e.columnNumber); // 6
  console.log(e.stack); // "@Scratchpad/2:2:7\n"
}

创建一个 ReferenceError

js
try {
  throw new ReferenceError("Hello", "someFile.js", 10);
} catch (e) {
  console.log(e instanceof ReferenceError); // true
  console.log(e.message); // "Hello"
  console.log(e.name); // "ReferenceError"
  console.log(e.fileName); // "someFile.js"
  console.log(e.lineNumber); // 10
  console.log(e.columnNumber); // 0
  console.log(e.stack); // "@Scratchpad/2:2:9\n"
}

规范

规范
ECMAScript® 2027 Language Specification
# sec-native-error-types-used-in-this-standard-referenceerror

浏览器兼容性

参见