๋ฉ์ธ์ง
SyntaxError: Expected ':' (Edge) SyntaxError: missing : after property id (Firefox)
์๋ฌ ํ์
๋ฌด์์ด ๋ฌธ์ ์ผ๊น?
๊ฐ์ฒด ์ด๊ธฐ์ ๊ตฌ๋ฌธ์ผ๋ก ๊ฐ์ฒด๋ฅผ ๋ง๋ค ๋ ์ฝ๋ก (:
)์ ๊ฐ์ฒด์ ์์ฑ์ ํค์ ๊ฐ์ผ๋ก ๋ถ๋ฆฌํฉ๋๋ค.
var obj = { propertyKey: 'value' };
์์
์ฝ๋ก vs. ๋ฑํธ
๊ฐ์ฒด ์ด๊ธฐ์ ๊ตฌ๋ฌธ์๋ ๋ฑํธ๋ฅผ ์ฌ์ฉํ ์ ์์ผ๋ฏ๋ก ์๋ ์์ ๋ ์คํจํฉ๋๋ค.
var obj = { propertyKey = 'value' };
// SyntaxError: missing : after property id
์ฝ๋ก ์ ์ฌ์ฉํ๊ฑฐ๋ ๊ฐ์ฒด๋ฅผ ์์ฑํ ๋ค์ ๋๊ดํธ๋ฅผ ์ฌ์ฉํ์ฌ ์๋ก์ด ์์ฑ์ ํ ๋นํ๋ ๊ฒ์ด ๋ฐ๋ฆ ๋๋ค.
var obj = { propertyKey: 'value' };
// ๋๋
var obj = { };
obj['propertyKey'] = 'value';
๋น ์์ฑ
์๋์ ๊ฐ์ด ๋น ์์ฑ์ ๋ง๋ค ์ ์์ต๋๋ค:
var obj = { propertyKey; };
// SyntaxError: missing : after property id
๋ง์ฝ ๊ฐ ์์ด ์์ฑ์ ์ ์ํด์ผ ํ๋ค๋ฉด ๊ฐ์ผ๋ก null
์ ์ง์ ํ ์ ์์ต๋๋ค.
var obj = { propertyKey: null };
๊ณ์ฐ๋ ์์ฑ
์์ผ๋ก ์์ฑ์ ํค๋ฅผ ๋ง๋๋ ๊ฒฝ์ฐ ๋๊ดํธ๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์์ฑ ์ด๋ฆ์ ๊ณ์ฐ๋ ๊ฐ์ ์ฌ์ฉํ ์ ์์ต๋๋ค:
var obj = { 'b'+'ar': 'foo' };
// SyntaxError: missing : after property id
์์ ๋๊ดํธ๋ฅผ ๋ฃ์ผ์ธ์ []
:
var obj = { ['b'+'ar']: 'foo' };