SyntaxError: missing ; before statement
๋ฉ์์ง
SyntaxError: missing ; before statement
์ค๋ฅ ํ์
๋ฌด์์ด ์ ๋ชป ๋์๋?
์ด๋๊ฐ์ ์ธ๋ฏธ ์ฝ๋ก (;
)์ด ๋น ์ ธ ์์ต๋๋ค. JavaScript ๊ตฌ๋ฌธ์ ๋ฐ๋์ ์ธ๋ฏธ ์ฝ๋ก ์ผ๋ก ๋๋์ผ ํฉ๋๋ค. ์ผ๋ถ๋ ์๋ ์ธ๋ฏธ์ฝ๋ก ์ฝ์
(automatic semicolon insertion (ASI))์ ์ํฅ์ ๋ฐ์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด ๊ฒฝ์ฐ์๋ ์ง์ ์ธ๋ฏธ ์ฝ๋ก ์ ์จ์ฃผ์ด์ผ ํฉ๋๋ค. ๊ทธ๋์ผ JavaScript๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ํด์ ๋ ์ ์๊ธฐ ๋๋ฌธ์
๋๋ค.
๊ทธ๋ฌ๋, ๊ฐ๋, ์ด ์ค๋ฅ๋ ๋ ๋ค๋ฅธ ์ค๋ฅ์ ๊ฒฐ๊ณผ๋ก๋ ๋ํ๋ ์๋ ์์ต๋๋ค. ๋ฌธ์์ด์ escape ๋ฌธ์๋ก ์ ์ ํ ์ฒ๋ฆฌํด ์ฃผ์ง ์์์ ๋, ๋๋ var
ํค์๋๋ฅผ ์ ๋ชป ์ฌ์ฉํ์ ๋์ ๊ฐ์ ๊ฒฝ์ฐ ์
๋๋ค. ๋ํ ์ด๋๊ฐ์ ๋๋ฌด ๋ง์ ๊ดํธ ๊ธฐํธ๋ฅผ ์ฌ์ฉํ์ ๊ฒ์
๋๋ค. ์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ์ ๋์๋ ๋ฌธ๋ฒ์ ์ ์คํ ๊ฒํ ํด์ผ ํฉ๋๋ค.
์์
Escape ์ฒ๋ฆฌ๋์ง ์์ ๋ฌธ์์ด
์ด ์ค๋ฅ๋ ๋ฌธ์์ด์ escape ์ฒ๋ฆฌ ํ์ง ์์์ ๋, JavaScript ์์ง์ด ๋ฌธ์์ด ๋์ ๋ฏธ๋ฆฌ ์์ธกํ์ฌ ๋ฐ์ํฉ๋๋ค. ์๋ฅผ ๋ค์๋ฉด ์๋์ ๊ฐ์ต๋๋ค. :
var foo = 'Tom's bar';
// SyntaxError: missing ; before statement
๋ฌธ์์ด์ ๋ฌถ์ด์ค ๋ ์ ๋ฐ์ดํ๋ฅผ ์ฌ์ฉํ๊ฑฐ๋, ์ญ์ฌ๋์๋ฅผ ์ด์ฉํด์ ํ๋ฐ์ดํ๋ฅผ ์ฌ์ฉ ํ ์ ์์ต๋๋ค. :
var foo = "Tom's bar";
var foo = 'Tom\'s bar';
var์ ํจ๊ป ์ ์ธํ๋ ๊ฒ
์ด๋ฏธ var
์ ์ธ๋ object๋ array์ ์์๋ฅผ ์๋ก ์ ์ธ ํ ์ ์์ต๋๋ค.
var obj = {};
var obj.foo = 'hi'; // SyntaxError missing ; before statement
var array = [];
var array[0] = 'there'; // SyntaxError missing ; before statement
๋์ ์, var
ํค์๋๋ฅผ ์๋ตํ๊ณ ์ ์ํฉ๋๋ค. :
var obj = {};
obj.foo = "hi";
var array = [];
array[0] = "there";