이 번역은 완료되지 않았습니다. 이 문서를 번역해 주세요.
SyntaxError 객체는 문법적으로 유효하지 않은 코드를 해석하려고 시도할 때 발생하는 오류를 표현합니다.
설명
SyntaxError는 JavaScript 엔진이 코드를 분석할 때 문법을 준수하지 않은 코드를 만나면 발생합니다.
구문
new SyntaxError([message[, fileName[, lineNumber]]])
매개변수
messageOptional- 오류에 대한 설명.
fileNameOptional- 예외가 발생한 코드를 담고 있는 파일의 이름.
lineNumberOptional- 예외가 발생한 코드의 라인 넘버.
속성
SyntaxError.prototypeSyntaxError객체에 속성을 추가할 수 있도록 해주고 있습니다.
메서드
전역(global) SyntaxError 는 고유의 메소드를 가지고 있지 않지만, prototype chain을 통해 몇몇의 메소드를 상속 받습니다.
SyntaxError 인스턴스
속성
SyntaxError.prototype.constructor- Specifies the function that created an instance's prototype.
SyntaxError.prototype.message- Error message. Although ECMA-262 specifies that
SyntaxErrorshould provide its ownmessageproperty, 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.
메소드
Although the SyntaxError prototype object does not contain any methods of its own, SyntaxError instances do inherit some methods through the prototype chain.
예제
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"
}
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"
}
명세
브라우저 호환성
Update compatibility data on GitHub
| Desktop | Mobile | Server | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
SyntaxError | Chrome Full support Yes | Edge Full support Yes | Firefox Full support 1 | IE Full support Yes | Opera Full support Yes | Safari Full support Yes | WebView Android Full support Yes | Chrome Android Full support Yes | Edge Mobile Full support Yes | Firefox Android Full support 4 | Opera Android Full support Yes | Safari iOS Full support Yes | Samsung Internet Android Full support Yes | nodejs Full support Yes |
Legend
- Full support
- Full support