我們的志工尚未將此文章翻譯為 正體中文 (繁體) 版本。加入我們,幫忙翻譯!
The SyntaxError
object represents an error when trying to interpret syntactically invalid code.
Description
A SyntaxError
is thrown when the JavaScript engine encounters tokens or token order that does not conform to the syntax of the language when parsing code.
Syntax
new SyntaxError([message[, fileName[, lineNumber]]])
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
Properties
SyntaxError.prototype
- Allows the addition of properties to a
SyntaxError
object.
Methods
The global SyntaxError
contains no methods of its own, however, it does inherit some methods through the prototype chain.
SyntaxError
instances
Properties
SyntaxError.prototype.constructor
- Specifies the function that created an instance's prototype.
SyntaxError.prototype.message
- Error message. Although ECMA-262 specifies that
SyntaxError
should provide its ownmessage
property, in SpiderMonkey, it inheritsError.prototype.message
. SyntaxError.prototype.name
- Error name. Inherited from
Error
. SyntaxError.prototype.fileName
- Path to file that raised this error. Inherited from
Error
. SyntaxError.prototype.lineNumber
- Line number in file that raised this error. Inherited from
Error
. SyntaxError.prototype.columnNumber
- Column number in line that raised this error. Inherited from
Error
. SyntaxError.prototype.stack
- Stack trace. Inherited from
Error
.
Methods
Although the SyntaxError
prototype object does not contain any methods of its own, SyntaxError
instances do inherit some methods through the prototype chain.
Examples
Catching a SyntaxError
try { eval('hoo bar'); } catch (e) { console.log(e instanceof SyntaxError); // true console.log(e.message); // "missing ; before statement" console.log(e.name); // "SyntaxError" console.log(e.fileName); // "Scratchpad/1" console.log(e.lineNumber); // 1 console.log(e.columnNumber); // 4 console.log(e.stack); // "@Scratchpad/1:2:3\n" }
Creating a SyntaxError
try { throw new SyntaxError('Hello', 'someFile.js', 10); } catch (e) { console.log(e instanceof SyntaxError); // true console.log(e.message); // "Hello" console.log(e.name); // "SyntaxError" console.log(e.fileName); // "someFile.js" console.log(e.lineNumber); // 10 console.log(e.columnNumber); // 0 console.log(e.stack); // "@Scratchpad/2:11:9\n" }
Specifications
Specification | Status | Comment |
---|---|---|
ECMAScript 3rd Edition (ECMA-262) | Standard | Initial definition. |
ECMAScript 5.1 (ECMA-262) The definition of 'SyntaxError' in that specification. |
Standard | |
ECMAScript 2015 (6th Edition, ECMA-262) The definition of 'SyntaxError' in that specification. |
Standard | |
ECMAScript 2017 Draft (ECMA-262) The definition of 'SyntaxError' 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) |