๋ฉ์ธ์ง
SyntaxError: Invalid character (Edge) SyntaxError: illegal character (Firefox) SyntaxError: Invalid or unexpected token (Chrome)
์๋ฌ ํ์
๋ฌด์์ด ์๋ชป๋์์๊น?
์ฝ๋์ ํด๋น ๊ตฌ๋ฌธ์ ๋ง์ง ์๊ฑฐ๋ ์๊ธฐ์น ์์ ํ ํฐ์ด ์์ต๋๋ค. ๋ง์ด๋์ค ๊ธฐํธ( -
)์ ๋์( โ
) ๋๋ ๋ฐ์ดํ( "
)์ ๋นํ์ค ๋ฐ์ดํ( โ
) ๋ฑ์ด ์๋ชป ์ฌ์ฉ๋ ๊ฒฝ์ฐ์ ๋ํด ๋ฌธ๋ฒ ์ฒดํฌ๋ฅผ ํด์ฃผ๋ ํธ์ง๊ธฐ๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ๋๋ฅผ ์ฃผ์ ๊น๊ฒ ํ์ธํด์ผ ํฉ๋๋ค.
์์
์๋ชป ์ฌ์ฉ๋ ๋ฌธ์
์ผ๋ถ ๋ฌธ์๋ค์ ๋น์ทํ๊ฒ ๋ณด์ด์ง๋ง ํ์๊ฐ ์ฝ๋ ํด์์ ์คํจํ๊ฒ ๋ง๋ญ๋๋ค. ์ ๋ช ํ ์๋ก ๋ฐ์ดํ, ๋ง์ด๋์ค ๋๋ ์ธ๋ฏธ์ฝ๋ก (greek questionmark (U+37e)๊ณผ ๋์ผํ๊ฒ ๋ณด์ ๋๋ค)์ด ์์ต๋๋ค.
โThis looks like a stringโ; // SyntaxError: illegal character
// ๋น์ทํด ๋ณด์ด์ง๋ง โ์ โ๋ "์ด ์๋๋๋ค
42 โ 13; // SyntaxError: illegal character
// ๋น์ทํด ๋ณด์ด์ง๋ง โ์ -์ด ์๋๋๋ค
var foo = 'bar'อพ // SyntaxError: illegal character
// ๋น์ทํด ๋ณด์ด์ง๋ง <37e>์ ;์ด ์๋๋๋ค
์๋ ์์ ๋ ์ ์์ ์ผ๋ก ๋์ํฉ๋๋ค:
"This is actually a string";
42 - 13;
var foo = 'bar';
๋ฌธ์ ๋น ํธ๋ฆฌ๊ธฐ
์์ด๋ ๋ค์ ์ค๋ ๋ฌธ์๋ฅผ ์์ด๋ฒ๋ฆฌ๊ธฐ ์ฝ์ต๋๋ค.
var colors = ['#000', #333', '#666'];
// SyntaxError: illegal character
'#333'
์ ๋น ์ง ์์๋ฐ์ดํ๋ฅผ ์ถ๊ฐํฉ๋๋ค.
var colors = ['#000', '#333', '#666'];
์จ๊ฒจ์ง ๋ฌธ์
๋ค๋ฅธ ๊ณณ์์ ์ฝ๋๋ฅผ ๋ณต์ฌํ์ฌ ๋ถ์ฌ๋ฃ์ ๊ฒฝ์ฐ ์๋ชป๋ ๋ฌธ์๊ฐ ํฌํจ๋ผ ์์ ์ ์์ต๋๋ค. ์ฃผ์ํ์ธ์!
var foo = 'bar';โ
// SyntaxError: illegal character
Vim๊ณผ ๊ฐ์ ํธ์ง๊ธฐ์์ ์๋ ์ฝ๋๋ฅผ ์ฒดํฌํ๋ฉด ํญ ์๋ ๊ณต๋ฐฑ(zero-width space (ZWSP) (U+200B)) ๋ฌธ์๊ฐ ์๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
var foo = 'bar';โ<200b>