aboutsummaryrefslogtreecommitdiff
path: root/files/ko/web/javascript/reference/errors/illegal_character/index.html
blob: d10e1b128982066baa894080e8284447f5f1b023 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
---
title: 'SyntaxError: illegal character'
slug: Web/JavaScript/Reference/Errors/Illegal_character
tags:
  - ZWSP
  - 구문 에러
  - 자바스크립트
  - 폭 없는 공백
translation_of: Web/JavaScript/Reference/Errors/Illegal_character
---
<p>{{jsSidebar("Errors")}}</p>

<h2 id="메세지">메세지</h2>

<pre class="syntaxbox">SyntaxError: Invalid character (Edge)
SyntaxError: illegal character (Firefox)
SyntaxError: Invalid or unexpected token (Chrome)
</pre>

<h2 id="에러_타입">에러 타입</h2>

<p>{{jsxref("SyntaxError")}}</p>

<h2 id="무엇이_잘못되었을까">무엇이 잘못되었을까?</h2>

<p>코드에 해당 구문에 맞지 않거나 예기치 않은 토큰이 있습니다. 마이너스 기호(<code> - </code>)와 대시(<code></code>) 또는 따옴표(<code> " </code>)와 비표준 따옴표(<code></code>) 등이 잘못 사용된 경우에 대해 문법 체크를 해주는 편집기를 사용하여 코드를 주의 깊게 확인해야 합니다.</p>

<h2 id="예제">예제</h2>

<h3 id="잘못_사용된_문자">잘못 사용된 문자</h3>

<p>일부 문자들은 비슷하게 보이지만 파서가 코드 해석을 실패하게 만듭니다. 유명한 예로 따옴표, 마이너스 또는 세미콜론(<a href="https://en.wikipedia.org/wiki/Question_mark#Greek_question_mark">greek questionmark (U+37e)</a>과 동일하게 보입니다)이 있습니다.</p>

<pre class="brush: js example-bad">“This looks like a string”;  // SyntaxError: illegal character
                             // 비슷해 보이지만 “와 ”는 "이 아닙니다

42 – 13;                     // SyntaxError: illegal character
                             // 비슷해 보이지만 –은 -이 아닙니다

var foo = 'bar';             // SyntaxError: illegal character
                             // 비슷해 보이지만 &lt;37e&gt;은 ;이 아닙니다
</pre>

<p>아래 예제는 정상적으로 동작합니다:</p>

<pre class="brush: js example-good">"This is actually a string";
42 - 13;
var foo = 'bar';
</pre>

<p>일부 편집기와 IDE는 문제가 있는 부분을 알려주거나 적어도 강조 표시를 해주지만 전부는 아닙니다. 이런 에러가 발생했을 때 무엇이 문제인지 찾을 수 없는 경우, 문제가 있는 줄을 지우고 다시 작성하는 것 가장 좋습니다.</p>

<h3 id="문자_빠트리기">문자 빠트리기</h3>

<p>앞이나 뒤에 오는 문자를 잊어버리기 쉽습니다.</p>

<pre class="brush: js example-bad">var colors = ['#000', #333', '#666'];
// SyntaxError: illegal character
</pre>

<p> <code><strong>'</strong>#333'</code>에 빠진 작은따옴표를 추가합니다.</p>

<pre class="brush: js example-good">var colors = ['#000', '#333', '#666'];</pre>

<h3 id="숨겨진_문자">숨겨진 문자</h3>

<p>다른 곳에서 코드를 복사하여 붙여넣은 경우 잘못된 문자가 포함돼 있을 수 있습니다. 주의하세요!</p>

<pre class="brush: js example-bad">var foo = 'bar';​
// SyntaxError: illegal character
</pre>

<p>Vim과 같은 편집기에서 아래 코드를 체크하면 폭 없는 공백(<a href="https://en.wikipedia.org/wiki/Zero-width_space">zero-width space (ZWSP) (U+200B)</a>) 문자가 있는 것을 확인할 수 있습니다.</p>

<pre class="brush: js">var foo = 'bar';​&lt;200b&gt;</pre>

<h2 id="같이_보기">같이 보기</h2>

<ul>
 <li><a href="https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Lexical_grammar">문법</a></li>
</ul>