ReferenceError

The ReferenceError object represents an error when a non-existent variable is referenced.

Syntax

JavaScript
new ReferenceError([<var>message</var>[, <var>fileName</var>[, <var>lineNumber</var>]]])

Parameters

message
Optional. Human-readable description of the error
fileName
Optional. The name of the file containing the code that caused the exception
lineNumber
Optional. The line number of the code that caused the exception

Description

A ReferenceError is thrown when trying to dereference a variable that has not been declared.

Properties

ReferenceError.prototype
Allows the addition of properties to an ReferenceError object.

Methods

The global ReferenceError contains no methods of its own, however, it does inherit some methods through the prototype chain.

ReferenceError instances

Properties

ReferenceError.prototype.constructor
Specifies the function that created an instance's prototype.
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.

Methods

Although the ReferenceError prototype object does not contain any methods of its own, ReferenceError instances do inherit some methods through the prototype chain.

Examples

Catching a ReferenceError

JavaScript
try {
  var 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

JavaScript
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 Status Comment
ECMAScript 3rd Edition (ECMA-262) Standard Initial definition.
ECMAScript 5.1 (ECMA-262)
The definition of 'ReferenceError' in that specification.
Standard  
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'ReferenceError' in that specification.
Standard  
ECMAScript 2017 Draft (ECMA-262)
The definition of 'ReferenceError' in that specification.
Draft  

Browser compatibility

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support (Yes) (Yes) (Yes) (Yes) (Yes)
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support (Yes) (Yes) (Yes) (Yes) (Yes) (Yes)

See also

License

© 2016 Mozilla 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

Error JavaScript Object Reference ReferenceError