SyntaxError: "x" is a reserved identifier
๋ฉ์ธ์ง
SyntaxError: The use of a future reserved word for an identifier is invalid (Edge) SyntaxError: "x" is a reserved identifier (Firefox) SyntaxError: Unexpected reserved word (Chrome)
์๋ฌ ํ์
๋ฌด์์ด ์๋ชป๋์์๊น?
์์ฝ์ด๊ฐ ์๋ณ์๋ก ์ฐ์ธ ๊ฒฝ์ฐ ๋ฐ์ํ๋ ์๋ฌ์ ๋๋ค. ์ด ํค์๋๋ ์๊ฒฉ(Strict) ๋ชจ๋์ ๋์จํ(Sloppy) ๋ชจ๋์์ ๋ชจ๋ ์์ฝ์ด๋ก ์ทจ๊ธ๋ฉ๋๋ค.
enum
๋ค์์ ์๊ฒฉ ๋ชจ๋์ ์ฝ๋์์๋ง ์์ฝ์ด๋ก ์ทจ๊ธ๋ฉ๋๋ค:
implementsinterfaceletpackageprivateprotectedpublicstatic
์์
์๊ฒฉ ๋ชจ๋์ ์๊ฒฉํ์ง ์์ ๋ชจ๋์์์ ์์ฝ์ด
enum ์๋ณ์๋ ์ผ๋ฐ์ ์ผ๋ก ์์ฝ๋์ด ์์ต๋๋ค.
var enum = { RED: 0, GREEN: 1, BLUE: 2 };
// SyntaxError: enum is a reserved identifier
์๊ฒฉ ๋ชจ๋์ ์ฝ๋์์ ๋ ๋ง์ ์๋ณ์๋ค์ด ์์ฝ๋์ด ์์ต๋๋ค.
"use strict";
var package = ["potatoes", "rice", "fries"];
// SyntaxError: package is a reserved identifier
์ด ๋ณ์๋ค์ ์ด๋ฆ์ ๋ณ๊ฒฝํด์ผ ํฉ๋๋ค.
var colorEnum = { RED: 0, GREEN: 1, BLUE: 2 };
var list = ["potatoes", "rice", "fries"];์ค๋๋ ๋ธ๋ผ์ฐ์ ์ ์ ๋ฐ์ดํธ
์๋ก์ด ๊ตฌ๋ฌธ์ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ์ต๊ทผ ๋ฒ์ ์ ๋ธ๋ผ์ฐ์ ๋ก ์
๋ฐ์ดํธ ํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ค๋๋ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค๋ฉด let ๋๋ class ๊ตฌํํ ์ ์์ต๋๋ค.
"use strict";
class DocArchiver {}
// SyntaxError: class is a reserved identifier
// (์ค๋๋ ๋ฒ์ ์ ๋ธ๋ผ์ฐ์ ์์๋ง ์๋ฌ๊ฐ ๋ฐ์ํฉ๋๋ค. ์) Firefox 44 ์ดํ)