W3cubDocs

/JavaScript

ReferenceError

The ReferenceError object represents an error when a variable that doesn't exist (or hasn't yet been initialized) in the current scope is referenced.

ReferenceError is a serializable object, so it can be cloned with structuredClone() or copied between Workers using postMessage().

Constructor

ReferenceError()

Creates a new ReferenceError object.

Instance properties

ReferenceError.prototype.message

Error message. Inherited from Error.

ReferenceError.prototype.name

Error name. Inherited from Error.

ReferenceError.prototype.cause

Error cause. Inherited from Error.

ReferenceError.prototype.fileName Non-standard

Path to file that raised this error. Inherited from Error.

ReferenceError.prototype.lineNumber Non-standard

Line number in file that raised this error. Inherited from Error.

ReferenceError.prototype.columnNumber Non-standard

Column number in line that raised this error. Inherited from Error.

ReferenceError.prototype.stack Non-standard

Stack trace. Inherited from Error.

Examples

Catching a ReferenceError

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"
}

Creating a ReferenceError

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"
}

Specifications

Browser compatibility

Desktop Mobile Server
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari on IOS Samsung Internet Deno Node.js
ReferenceError
1
12
1
5.5
5
1
4.4
18
4
10.1
1
1.0
1.0
0.10.0
ReferenceError
1
12
1
5.5
5
1
4.4
18
4
10.1
1
1.0
1.0
0.10.0
serializable_object
77
79
103
["Version 103 serializable properties: name, message, cause, fileName, lineNumber and columnNumber.", "Version 104 also serializes stack in window.postMessage() and structuredClone()."]
No
64
No
77
77
103
["Version 103 serializable properties: name, message, cause, fileName, lineNumber and columnNumber.", "Version 104 also serializes stack in window.postMessage() and structuredClone()."]
55
No
12.0
No
No

See also

© 2005–2022 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ReferenceError