{{JSRef("Global_Objects", "Error", "EvalError,InternalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError")}}
Summary
The ReferenceError
object represents an error when a non-existent variable is referenced.
Syntax
new ReferenceError([message[, fileName[, lineNumber]]])
Parameters
message
- Optional. Human-readable description of the error
fileName
{{non-standard_inline}}- Optional. The name of the file containing the code that caused the exception
lineNumber
{{non-standard_inline}}- 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
- {{jsxref("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
{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects/ReferenceError/prototype', 'Properties')}}
Methods
{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects/ReferenceError/prototype', 'Methods')}}
Examples
Example: Catch an ReferenceError
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" }
Example: Create an 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 | Status | Comment |
---|---|---|
ECMAScript 3rd Edition. | Standard | Initial definition. |
{{SpecName('ES5.1', '#sec-15.11.6.3', 'ReferenceError')}} | {{Spec2('ES5.1')}} | |
{{SpecName('ES6', '#sec-native-error-types-used-in-this-standard-referenceerror', 'ReferenceError')}} | {{Spec2('ES6')}} |
Browser compatibility
{{CompatibilityTable}}
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
See also
- {{jsxref("Error")}}
- {{jsxref("ReferenceError.prototype")}}