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.

Constructor

ReferenceError()

Creates a new ReferenceError object.

Instance properties

ReferenceError.prototype.message

Error message. Although ECMA-262 specifies that ReferenceError should provide its own message property, in SpiderMonkey, it inherits Error.prototype.message.

ReferenceError.prototype.name

Error name. Inherited from Error.

ReferenceError.prototype.fileName

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

ReferenceError.prototype.lineNumber

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

ReferenceError.prototype.columnNumber

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

ReferenceError.prototype.stack

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

Specification
ECMAScript Language Specification (ECMAScript)
# sec-native-error-types-used-in-this-standard-referenceerror

Browser compatibility

BCD tables only load in the browser

See also