aboutsummaryrefslogtreecommitdiff
path: root/files/ko/web/javascript/reference/errors
diff options
context:
space:
mode:
authorPeter Bengtsson <mail@peterbe.com>2020-12-08 14:42:17 -0500
committerPeter Bengtsson <mail@peterbe.com>2020-12-08 14:42:17 -0500
commitda78a9e329e272dedb2400b79a3bdeebff387d47 (patch)
treee6ef8aa7c43556f55ddfe031a01cf0a8fa271bfe /files/ko/web/javascript/reference/errors
parent1109132f09d75da9a28b649c7677bb6ce07c40c0 (diff)
downloadtranslated-content-da78a9e329e272dedb2400b79a3bdeebff387d47.tar.gz
translated-content-da78a9e329e272dedb2400b79a3bdeebff387d47.tar.bz2
translated-content-da78a9e329e272dedb2400b79a3bdeebff387d47.zip
initial commit
Diffstat (limited to 'files/ko/web/javascript/reference/errors')
-rw-r--r--files/ko/web/javascript/reference/errors/bad_octal/index.html45
-rw-r--r--files/ko/web/javascript/reference/errors/bad_radix/index.html57
-rw-r--r--files/ko/web/javascript/reference/errors/bad_regexp_flag/index.html107
-rw-r--r--files/ko/web/javascript/reference/errors/bad_return_or_yield/index.html51
-rw-r--r--files/ko/web/javascript/reference/errors/cant_access_lexical_declaration_before_init/index.html56
-rw-r--r--files/ko/web/javascript/reference/errors/delete_in_strict_mode/index.html71
-rw-r--r--files/ko/web/javascript/reference/errors/deprecated_caller_or_arguments_usage/index.html70
-rw-r--r--files/ko/web/javascript/reference/errors/deprecated_octal/index.html64
-rw-r--r--files/ko/web/javascript/reference/errors/identifier_after_number/index.html57
-rw-r--r--files/ko/web/javascript/reference/errors/illegal_character/index.html81
-rw-r--r--files/ko/web/javascript/reference/errors/index.html12
-rw-r--r--files/ko/web/javascript/reference/errors/invalid_array_length/index.html73
-rw-r--r--files/ko/web/javascript/reference/errors/invalid_assignment_left-hand_side/index.html50
-rw-r--r--files/ko/web/javascript/reference/errors/invalid_date/index.html50
-rw-r--r--files/ko/web/javascript/reference/errors/invalid_for-in_initializer/index.html75
-rw-r--r--files/ko/web/javascript/reference/errors/invalid_for-of_initializer/index.html64
-rw-r--r--files/ko/web/javascript/reference/errors/is_not_iterable/index.html106
-rw-r--r--files/ko/web/javascript/reference/errors/json_bad_parse/index.html105
-rw-r--r--files/ko/web/javascript/reference/errors/malformed_formal_parameter/index.html57
-rw-r--r--files/ko/web/javascript/reference/errors/missing_bracket_after_list/index.html56
-rw-r--r--files/ko/web/javascript/reference/errors/missing_colon_after_property_id/index.html78
-rw-r--r--files/ko/web/javascript/reference/errors/missing_curly_after_property_list/index.html47
-rw-r--r--files/ko/web/javascript/reference/errors/missing_initializer_in_const/index.html55
-rw-r--r--files/ko/web/javascript/reference/errors/missing_name_after_dot_operator/index.html63
-rw-r--r--files/ko/web/javascript/reference/errors/missing_parenthesis_after_argument_list/index.html38
-rw-r--r--files/ko/web/javascript/reference/errors/missing_parenthesis_after_condition/index.html65
-rw-r--r--files/ko/web/javascript/reference/errors/missing_semicolon_before_statement/index.html63
-rw-r--r--files/ko/web/javascript/reference/errors/more_arguments_needed/index.html45
-rw-r--r--files/ko/web/javascript/reference/errors/negative_repetition_count/index.html40
-rw-r--r--files/ko/web/javascript/reference/errors/no_variable_name/index.html79
-rw-r--r--files/ko/web/javascript/reference/errors/not_a_codepoint/index.html51
-rw-r--r--files/ko/web/javascript/reference/errors/not_a_constructor/index.html91
-rw-r--r--files/ko/web/javascript/reference/errors/not_defined/index.html66
-rw-r--r--files/ko/web/javascript/reference/errors/precision_range/index.html92
-rw-r--r--files/ko/web/javascript/reference/errors/property_access_denied/index.html42
-rw-r--r--files/ko/web/javascript/reference/errors/read-only/index.html77
-rw-r--r--files/ko/web/javascript/reference/errors/reduce_of_empty_array_with_no_initial_value/index.html83
-rw-r--r--files/ko/web/javascript/reference/errors/reserved_identifier/index.html80
-rw-r--r--files/ko/web/javascript/reference/errors/resulting_string_too_large/index.html46
-rw-r--r--files/ko/web/javascript/reference/errors/strict_non_simple_params/index.html107
-rw-r--r--files/ko/web/javascript/reference/errors/too_much_recursion/index.html50
-rw-r--r--files/ko/web/javascript/reference/errors/undeclared_var/index.html62
-rw-r--r--files/ko/web/javascript/reference/errors/undefined_prop/index.html58
-rw-r--r--files/ko/web/javascript/reference/errors/unexpected_token/index.html49
-rw-r--r--files/ko/web/javascript/reference/errors/unexpected_type/index.html67
-rw-r--r--files/ko/web/javascript/reference/errors/unnamed_function_statement/index.html118
46 files changed, 3019 insertions, 0 deletions
diff --git a/files/ko/web/javascript/reference/errors/bad_octal/index.html b/files/ko/web/javascript/reference/errors/bad_octal/index.html
new file mode 100644
index 0000000000..8a4590e668
--- /dev/null
+++ b/files/ko/web/javascript/reference/errors/bad_octal/index.html
@@ -0,0 +1,45 @@
+---
+title: 'SyntaxError: "x" is not a legal ECMA-262 octal constant'
+slug: Web/JavaScript/Reference/Errors/Bad_octal
+translation_of: Web/JavaScript/Reference/Errors/Bad_octal
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<h2 id="메시지">메시지</h2>
+
+<pre class="syntaxbox">Warning: SyntaxError: 08 is not a legal ECMA-262 octal constant.
+Warning: SyntaxError: 09 is not a legal ECMA-262 octal constant.
+</pre>
+
+<h2 id="에러_형식">에러 형식</h2>
+
+<p>{{jsxref("SyntaxError")}}<code>. </code>엄격 모드(<a href="/en-US/docs/Web/JavaScript/Reference/Strict_mode">strict mode</a>)에서만 경고 됨.</p>
+
+<h2 id="무엇이_잘못되었을까">무엇이 잘못되었을까?</h2>
+
+<p>10진법의 리터럴은 <code>0</code>을 가장 앞 자리에 표시하고 뒤따라 다른 10진 숫자가 오게 할 수 있지만, <code>0</code>으로 시작하여 그 뒤를 따르는 모든 숫자들이 8보다 작다면, 그 수는 8진수로 해석됩니다. 이런 경우에는 <code>08<font face="Open Sans, Arial, sans-serif">과</font> 09<font face="Open Sans, Arial, sans-serif">는 허용되지 않기 때문에</font><font face="Open Sans, Arial, sans-serif"> </font></code>JavaScript는 경고를 띄웁니다. </p>
+
+<p>8진 리터럴과 8진 escape sequence는 사라지고 추가적인 경고가 나타날 것임을 알아 두세요. ECMAScript 6와 그 이후 버전의 구문은, 맨 앞자리에 위치하는 <code>0</code>의 뒤에 소문자 또는 대문자의 라틴 문자 "O" 를 위치시키도록 합니다 (<code>0o</code> or <code>0O)</code>. 더 자세한 설명은 <a href="/en-US/docs/Web/JavaScript/Reference/Lexical_grammar#Octal">lexical grammar</a> 페이지를 보세요.</p>
+
+<h2 id="예">예</h2>
+
+<h3 id="유효하지_않은_8진수">유효하지 않은 8진수</h3>
+
+<pre class="brush: js example-bad">08;
+09;
+// SyntaxError: 08 is not a legal ECMA-262 octal constant
+// SyntaxError: octal literals and octal escape sequences are deprecated</pre>
+
+<h3 id="유효한_8진수">유효한 8진수</h3>
+
+<p>선두로 사용된 <code>0</code>의 뒤에는 문자 "o"가 오도록 한다. </p>
+
+<pre class="brush: js example-good">0O755;
+0o644;
+</pre>
+
+<h2 id="참고">참고</h2>
+
+<ul>
+ <li><a href="/en-US/docs/Web/JavaScript/Reference/Lexical_grammar#Octal">Lexical grammar</a></li>
+</ul>
diff --git a/files/ko/web/javascript/reference/errors/bad_radix/index.html b/files/ko/web/javascript/reference/errors/bad_radix/index.html
new file mode 100644
index 0000000000..3ea98bf1eb
--- /dev/null
+++ b/files/ko/web/javascript/reference/errors/bad_radix/index.html
@@ -0,0 +1,57 @@
+---
+title: 'RangeError: radix must be an integer'
+slug: Web/JavaScript/Reference/Errors/Bad_radix
+translation_of: Web/JavaScript/Reference/Errors/Bad_radix
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<h2 id="메시지">메시지</h2>
+
+<pre class="syntaxbox">RangeError: radix must be an integer at least 2 and no greater than 36 (Firefox)
+RangeError: toString() radix argument must be between 2 and 36 (Chrome)
+</pre>
+
+<h2 id="에러_형식">에러 형식</h2>
+
+<p>{{jsxref("RangeError")}}</p>
+
+<h2 id="무엇이_잘못되었을까">무엇이 잘못되었을까?</h2>
+
+<p>{{jsxref("Number.prototype.toString()")}} 메소드는 선택적 파라메터인 <code>radix</code>(기수:진수를 지정하는 값)와 함께 사용되어 왔습니다. 이 파라메터는 반드시 수의 값을 나타내는 진법의 2와 36 사이로 지정된 정수(숫자)여야 합니다. </p>
+
+<p>왜 36으로 제한이 되었을까요? <code>radix</code>는 digit(밑기수) 알파벳 글자로 사용되는 10보다는 큽니다. 그렇기 때문에, <code>radix</code>는 라틴 알파벳 26글자를 가졌을 때, 36보다 클 수 없습니다.  </p>
+
+<p>보통 아래의 <code>radix</code> 중 하나를 사용하게 될 것입니다.</p>
+
+<ul>
+ <li>2 for <a href="https://en.wikipedia.org/wiki/Binary_number">binary numbers</a> (2진수),</li>
+ <li>8 for <a href="https://en.wikipedia.org/wiki/Octal">octal numbers</a> (8진수),</li>
+ <li>10 for <a href="https://en.wikipedia.org/wiki/Decimal">decimal numbers</a> (10진수),</li>
+ <li>16 for <a href="https://en.wikipedia.org/wiki/Hexadecimal">hexadecimal numbers</a> (16진수).</li>
+</ul>
+
+<h2 id="예">예</h2>
+
+<h3 id="허용되지_않는_경우">허용되지 않는 경우</h3>
+
+<pre class="brush: js example-bad">(42).toString(0);
+(42).toString(1);
+(42).toString(37);
+(42).toString(150);
+//포맷팅하기 위해 string을 이런 식으로 사용할 수는 없습니다. :
+(12071989).toString("MM-dd-yyyy");
+</pre>
+
+<h3 id="허용된_경우">허용된 경우</h3>
+
+<pre class="brush: js example-good">(42).toString(2); // "101010" (2진수)
+(13).toString(8); // "15" (8진수)
+(0x42).toString(10); // "66" (10진수)
+(100000).toString(16) // "186a0" (16진수)
+</pre>
+
+<h2 id="참조">참조</h2>
+
+<ul>
+ <li>{{jsxref("Number.prototype.toString()")}}</li>
+</ul>
diff --git a/files/ko/web/javascript/reference/errors/bad_regexp_flag/index.html b/files/ko/web/javascript/reference/errors/bad_regexp_flag/index.html
new file mode 100644
index 0000000000..2c8d12289d
--- /dev/null
+++ b/files/ko/web/javascript/reference/errors/bad_regexp_flag/index.html
@@ -0,0 +1,107 @@
+---
+title: 'SyntaxError: invalid regular expression flag "x"'
+slug: Web/JavaScript/Reference/Errors/Bad_regexp_flag
+tags:
+ - 구문 에러
+ - 자바스크립트
+ - 정규식
+ - 플래그
+translation_of: Web/JavaScript/Reference/Errors/Bad_regexp_flag
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<h2 id="메세지">메세지</h2>
+
+<pre class="syntaxbox">SyntaxError: Syntax error in regular expression (Edge)
+SyntaxError: invalid regular expression flag "x" (Firefox)
+SyntaxError: Invalid regular expression flags (Chrome)
+</pre>
+
+<h2 id="에러_타입">에러 타입</h2>
+
+<p>{{jsxref("SyntaxError")}}</p>
+
+<h2 id="무엇이_잘못되었을까">무엇이 잘못되었을까?</h2>
+
+<p>코드에 잘못된 정규 표현식 플래그가 있습니다. 슬래시로 묶인 패턴으로 구성되어 있는 정규 표현식 문자에서 플래그는 두 번째 플래그 뒤에 정의됩니다. 플래그는 또한 {{jsxref("RegExp")}} 객체의 생성자 함수에서도 정의될 수 있습니다(두 번째 매개변수). 정규 표현식 플래그는 따로 또는 순서에 상관 없이 같이 사용될 수 있지만 ECMAScript에는 오직 5개만 있습니다.</p>
+
+<p>정규 표현식에 플래그를 포함시키려면 아래의 문법을 사용하세요:</p>
+
+<pre class="brush: js">var re = /pattern/flags;
+</pre>
+
+<p>또는</p>
+
+<pre class="brush: js">var re = new RegExp('pattern', 'flags');</pre>
+
+<table class="standard-table">
+ <caption>정규 표현식 플래그</caption>
+ <thead>
+ <tr>
+ <th scope="col">플래그</th>
+ <th scope="col">설명</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><code>g</code></td>
+ <td>전역 검색.</td>
+ </tr>
+ <tr>
+ <td>i</td>
+ <td>대소문자 구별 없이 검색.</td>
+ </tr>
+ <tr>
+ <td>m</td>
+ <td>여러 줄(Multi-line) 검색.</td>
+ </tr>
+ <tr>
+ <td>u</td>
+ <td>유니코드; 패턴을 유니코드 코드 포인트의 나열로 취급.</td>
+ </tr>
+ <tr>
+ <td>y</td>
+ <td>현재 위치에서 검색. ("sticky" 검색). {{jsxref("RegExp.sticky", "sticky")}} 참조.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="예제">예제</h2>
+
+<p>5개의 플래그만이 유효합니다.</p>
+
+<pre class="brush: js example-bad">/foo/bar;
+
+// SyntaxError: invalid regular expression flag "b"
+</pre>
+
+<p>정규 표현식을 만들려고 했나요? 두 개의 슬래시가 포함된 표현식은 정규 표현식 문자로 해석됩니다.</p>
+
+<pre class="brush: js example-bad">let obj = {
+ url: /docs/Web
+};
+
+// SyntaxError: invalid regular expression flag "W"
+</pre>
+
+<p>아니면 문자열로 만들려고 했나요? 작은 따옴표 또는 큰 따옴표를 추가하여 문자열을 만듭니다.</p>
+
+<pre class="brush: js example-good">let obj = {
+ url: '/docs/Web'
+};</pre>
+
+<h3 id="유효한_정규_표현식_플래그">유효한 정규 표현식 플래그</h3>
+
+<p>자바스크립트에서 허용하는 5개의 유효한 정규 표현식 플래그를 위의 표에서 확인하세요.</p>
+
+<pre class="brush: js example-good">/foo/g;
+/foo/gim;
+/foo/uy;
+</pre>
+
+<h2 id="같이_보기">같이 보기</h2>
+
+<ul>
+ <li><a href="https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/%EC%A0%95%EA%B7%9C%EC%8B%9D">정규 표현식</a></li>
+ <li><a href="http://xregexp.com/flags/">XRegEx flags</a> – 새로운 4개의 플래그(<code>n</code>, <code>s</code>, <code>x</code>, <code>A</code>)를 제공하는 정규 표현식 라이브러리</li>
+</ul>
diff --git a/files/ko/web/javascript/reference/errors/bad_return_or_yield/index.html b/files/ko/web/javascript/reference/errors/bad_return_or_yield/index.html
new file mode 100644
index 0000000000..1239fa27f4
--- /dev/null
+++ b/files/ko/web/javascript/reference/errors/bad_return_or_yield/index.html
@@ -0,0 +1,51 @@
+---
+title: 'SyntaxError: return not in function'
+slug: Web/JavaScript/Reference/Errors/Bad_return_or_yield
+translation_of: Web/JavaScript/Reference/Errors/Bad_return_or_yield
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<h2 id="메시지">메시지</h2>
+
+<pre class="syntaxbox">SyntaxError: return not in function
+SyntaxError: yield not in function
+</pre>
+
+<h2 id="에러_타입">에러 타입</h2>
+
+<p>{{jsxref("SyntaxError")}}.</p>
+
+<h2 id="뭐가_잘못된_걸까요">뭐가 잘못된 걸까요?</h2>
+
+<p><code><a href="https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Statements/return">return</a></code> 또는 <code><a href="https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/yield">yield</a></code> 문장이 <a href="https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/%ED%95%A8%EC%88%98">function</a> 밖에서 호출되었기 때문입니다. 혹시 어딘가에 중괄호를 빠트리신 건 아닌가요? <code>return</code> 과 <code>yield</code> function 내에 있어야 합니다, 왜냐하면 이것들은 function의 실행 종료 (또는 일시정지 및 재개)를 의미하고 function 호출자에게 특정 값을 반환하기 위해 사용되기 때문입니다.</p>
+
+<h2 id="예제">예제</h2>
+
+<pre class="brush: js example-bad">var cheer = function(score) {
+ if (score === 147)
+ return 'Maximum!';
+ };
+ if (score &gt; 100) {
+ return 'Century!';
+ }
+}
+
+// SyntaxError: return not in function</pre>
+
+<p>처음 볼 때는 중괄호가 제대로 있는 것처럼 보인다, 하지만 이 코드 조각에는 if 문장 다음에 중괄호가 하나 빠져 있다. 다음처럼 고쳐야 한다:</p>
+
+<pre class="brush: js example-good">var cheer = function(score) {
+ if (score === 147) {
+ return 'Maximum!';
+ }
+ if (score &gt; 100) {
+ return 'Century!';
+ }
+};</pre>
+
+<h2 id="또_다른_내용">또 다른 내용</h2>
+
+<ul>
+ <li><code><a href="/en-US/docs/Web/JavaScript/Reference/Statements/return">return</a></code></li>
+ <li><code><a href="/en-US/docs/Web/JavaScript/Reference/Operators/yield">yield</a></code></li>
+</ul>
diff --git a/files/ko/web/javascript/reference/errors/cant_access_lexical_declaration_before_init/index.html b/files/ko/web/javascript/reference/errors/cant_access_lexical_declaration_before_init/index.html
new file mode 100644
index 0000000000..593e8cca13
--- /dev/null
+++ b/files/ko/web/javascript/reference/errors/cant_access_lexical_declaration_before_init/index.html
@@ -0,0 +1,56 @@
+---
+title: 'ReferenceError: can''t access lexical declaration`X'' before initialization'
+slug: Web/JavaScript/Reference/Errors/Cant_access_lexical_declaration_before_init
+translation_of: Web/JavaScript/Reference/Errors/Cant_access_lexical_declaration_before_init
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<h2 id="Message">Message</h2>
+
+<pre class="syntaxbox">ReferenceError: can't access lexical declaration `X' before initialization (Firefox)
+ReferenceError: 'x' is not defined (Chrome)
+</pre>
+
+<h2 id="Error_type">Error type</h2>
+
+<p>{{jsxref("ReferenceError")}}</p>
+
+<h2 id="무엇이_잘못_되었을까요">무엇이 잘못 되었을까요?</h2>
+
+<p>변수가 초기화 되기 전에 엑세스가 되어버립니다. 이 문제는 let 또는 const 선언이 정의 되기 전에 엑세스되는 모든 block 문에서 발생합니다.</p>
+
+<h2 id="Examples">Examples</h2>
+
+<h3 id="잘못된_경우">잘못된 경우</h3>
+
+<p>이 경우에 변수 "foo"는 <code>let</code> 을 사용하여 block 문에서 다시 선언됩니다.</p>
+
+<pre class="brush: js example-bad">function test() {
+ let foo = 33;
+ if (true) {
+ let foo = (foo + 55);
+ // ReferenceError: can't access lexical
+ // declaration `foo' before initialization
+ }
+}
+test();
+</pre>
+
+<h3 id="올바른_경우">올바른 경우</h3>
+
+<p>if 문에서 "foo"를 변경하려면 재 선언을 발생시키는 <code>let</code> 을 제거해야합니다.</p>
+
+<pre class="brush: js example-good">function test(){
+ let foo = 33;
+ if (true) {
+ foo = (foo + 55);
+ }
+}
+test();
+</pre>
+
+<h2 id="그밖에_볼_것">그밖에 볼 것</h2>
+
+<ul>
+ <li><a href="/en-US/docs/Web/JavaScript/Reference/Statements/let#Temporal_Dead_Zone_and_errors_with_let">Temporal Dead Zone and errors with let</a></li>
+</ul>
diff --git a/files/ko/web/javascript/reference/errors/delete_in_strict_mode/index.html b/files/ko/web/javascript/reference/errors/delete_in_strict_mode/index.html
new file mode 100644
index 0000000000..138384bcac
--- /dev/null
+++ b/files/ko/web/javascript/reference/errors/delete_in_strict_mode/index.html
@@ -0,0 +1,71 @@
+---
+title: >-
+ SyntaxError: applying the 'delete' operator to an unqualified name is
+ deprecated
+slug: Web/JavaScript/Reference/Errors/Delete_in_strict_mode
+tags:
+ - 가비지 컬렉터
+ - 구문 에러
+ - 변수 삭제
+ - 자바스크립트
+translation_of: Web/JavaScript/Reference/Errors/Delete_in_strict_mode
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<h2 id="메세지">메세지</h2>
+
+<pre class="syntaxbox">SyntaxError: Calling delete on expression not allowed in strict mode (Edge)
+SyntaxError: applying the 'delete' operator to an unqualified name is deprecated (Firefox)
+SyntaxError: Delete of an unqualified identifier in strict mode. (Chrome)
+</pre>
+
+<h2 id="에러_타입">에러 타입</h2>
+
+<p>엄격(Strict) 모드에서의 {{jsxref("SyntaxError")}}</p>
+
+<h2 id="무엇이_잘못되었을까">무엇이 잘못되었을까?</h2>
+
+<p>자바스크립트에서 일반 변수는 <code><a href="/en-US/docs/Web/JavaScript/Reference/Operators/delete">delete</a></code> 연산자를 사용하여 삭제할 수 없습니다. 엄격 모드에서 변수를 삭제하는 접근은 허용되지 않으므로 에러가 발생합니다.</p>
+
+<p><code>delete</code> 연산자는 오직 객체의 속성만을 삭제할 수 있습니다. 객체 속성은 설정할 수 있는 경우 "수식"될 수 있습니다.</p>
+
+<p>일반적인 생각과 다르게 <code>delete</code> 연산자는 메모리 해제와 직접적인 연관이 없습니다. 메모리 관리는 참조가 깨짐에 따라 간접적으로 수행됩니다. 자세한 내용은 <a href="https://developer.mozilla.org/ko/docs/Web/JavaScript/Memory_Management">메모리 관리</a> 페이지와 <code><a href="/en-US/docs/Web/JavaScript/Reference/Operators/delete">delete</a></code> 연산자 페이지를 참조하십시오.</p>
+
+<p>이 에러는 오직 <a href="https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Strict_mode">엄격 모드 코드</a>에서만 발생합니다. 엄격하지 않은 모드에서 해당 연산자는 단순히 <code>false</code> 를 반환합니다.</p>
+
+<h2 id="예제">예제</h2>
+
+<p>자바스크립트에서 일반 변수를 삭제하려고 하면 동작하지 않습니다. 그리고 엄격 모드에서는 에러가 발생합니다:</p>
+
+<pre class="brush: js example-bad">'use strict';
+
+var x;
+
+// ...
+
+delete x;
+
+// SyntaxError: applying the 'delete' operator to an unqualified name
+// is deprecated
+</pre>
+
+<p>변수의 내용을 비우려면 {{jsxref("null")}}을 설정하면 됩니다:</p>
+
+<pre class="brush: js example-good">'use strict';
+
+var x;
+
+// ...
+
+x = null;
+
+// x는 가비지 컬렉터에 의해 메모리에서 해제됩니다
+</pre>
+
+<h2 id="같이_보기">같이 보기</h2>
+
+<ul>
+ <li><code><a href="/en-US/docs/Web/JavaScript/Reference/Operators/delete">delete</a></code></li>
+ <li><a href="/en-US/docs/Web/JavaScript/Memory_Management">메모리 관리</a></li>
+ <li><a href="/en-US/docs/Web/JavaScript/Reference/Errors/Cant_delete">TypeError: property "x" is non-configurable and can't be deleted</a></li>
+</ul>
diff --git a/files/ko/web/javascript/reference/errors/deprecated_caller_or_arguments_usage/index.html b/files/ko/web/javascript/reference/errors/deprecated_caller_or_arguments_usage/index.html
new file mode 100644
index 0000000000..fc613db1d0
--- /dev/null
+++ b/files/ko/web/javascript/reference/errors/deprecated_caller_or_arguments_usage/index.html
@@ -0,0 +1,70 @@
+---
+title: 'ReferenceError: deprecated caller or arguments usage'
+slug: Web/JavaScript/Reference/Errors/Deprecated_caller_or_arguments_usage
+translation_of: Web/JavaScript/Reference/Errors/Deprecated_caller_or_arguments_usage
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<h2 id="메시지">메시지</h2>
+
+<pre class="syntaxbox">Warning: ReferenceError: deprecated caller usage (Firefox)
+Warning: ReferenceError: deprecated arguments usage (Firefox)
+TypeError: 'callee' and 'caller' cannot be accessed in strict mode. (Safari)
+</pre>
+
+<h2 id="에러_형식">에러 형식</h2>
+
+<p>엄격 모드에서만 {{jsxref("ReferenceError")}} 경고가 발생합니다. JavaScript 실행이 중단되지는 않을 것입니다.   </p>
+
+<h2 id="무엇이_잘못되었을까">무엇이 잘못되었을까?</h2>
+
+<p>엄격모드에서, {{jsxref("Function.caller")}} 나 {{jsxref("Function.arguments")}} 속성이 사용되었고, 그러지 말아야 했습니다. 이 속성들은 사라지게 되었는데, 함수 호출자를 흘려보내거나, 비 표준이었으며, 최적화 하기 어렵고, 잠재적으로 퍼포먼스에 무리를 주었기 때문입니다.</p>
+
+<h2 id="예">예</h2>
+
+<h3 id="function.caller_or_arguments.callee.caller"><code>function.caller</code> or <code>arguments.callee.caller</code></h3>
+
+<p>{{jsxref("Function.caller")}} 와 <code><a href="/en-US/docs/Web/JavaScript/Reference/Functions/arguments/callee">arguments.callee.caller</a></code> 는 사라지게 되었습니다. (자세한 정보는 레퍼런스 문서를 확인해 보세요.)</p>
+
+<pre class="brush: js example-bad">"use strict";
+
+function myFunc() {
+  if (myFunc.caller == null) {
+    return 'The function was called from the top!';
+  } else {
+    return 'This function\'s caller was ' + myFunc.caller;
+  }
+}
+
+myFunc();
+// Warning: ReferenceError: deprecated caller usage
+// "The function was called from the top!"</pre>
+
+<h3 id="Function.arguments"><code>Function.arguments</code></h3>
+
+<p>{{jsxref("Function.arguments")}} 는 사라졌습니다. (자세한 정보는 레퍼런스 문서를 확인해 주세요.) </p>
+
+<pre class="brush: js example-bad">"use strict";
+
+function f(n) { g(n - 1); }
+
+function g(n) {
+ console.log('before: ' + g.arguments[0]);
+ if (n &gt; 0) { f(n); }
+ console.log('after: ' + g.arguments[0]);
+}
+
+f(2);
+
+console.log('returned: ' + g.arguments);
+// Warning: ReferenceError: deprecated arguments usage
+</pre>
+
+<h2 id="참조">참조</h2>
+
+<ul>
+ <li><a href="/en-US/docs/Web/JavaScript/Reference/Deprecated_and_obsolete_features">Deprecated and obsolete features</a></li>
+ <li><a href="/en-US/docs/Web/JavaScript/Reference/Strict_mode">Strict mode</a></li>
+ <li>{{jsxref("Function.arguments")}}</li>
+ <li>{{jsxref("Function.caller")}} and <code><a href="/en-US/docs/Web/JavaScript/Reference/Functions/arguments/callee">arguments.callee.caller</a></code></li>
+</ul>
diff --git a/files/ko/web/javascript/reference/errors/deprecated_octal/index.html b/files/ko/web/javascript/reference/errors/deprecated_octal/index.html
new file mode 100644
index 0000000000..55d85cf7eb
--- /dev/null
+++ b/files/ko/web/javascript/reference/errors/deprecated_octal/index.html
@@ -0,0 +1,64 @@
+---
+title: 'SyntaxError: "0"-prefixed octal literals and octal escape seq. are deprecated'
+slug: Web/JavaScript/Reference/Errors/Deprecated_octal
+translation_of: Web/JavaScript/Reference/Errors/Deprecated_octal
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<h2 id="메시지">메시지</h2>
+
+<pre class="syntaxbox">SyntaxError: Octal numeric literals and escape characters not allowed in strict mode (Edge)
+SyntaxError:
+"0"-prefixed octal literals and octal escape sequences are deprecated;
+for octal literals use the "0o" prefix instead
+</pre>
+
+<h2 id="에러_타입">에러 타입</h2>
+
+<p>{{jsxref("SyntaxError")}} <a href="/en-US/docs/Web/JavaScript/Reference/Strict_mode">strict mode</a> 내에서만.</p>
+
+<h2 id="무엇이_잘_못_되었을까">무엇이 잘 못 되었을까?</h2>
+
+<p>8진 리터럴과 8진수 이스케이프 시퀀스는 더 이상 사용하지 않으며, 엄격 모드(strict mode) 내에서는 {{jsxref("SyntaxError")}} 에러를 던질 것입니다. ECMAScript 2015와 이 후의 버전의 표준화된 구문은 0을 맨 앞자리에 두고 그 뒤를 대문자 또는 소문자의 라틴 문자 "O" 를 사용하도록 합니다. (<code>0o</code> 또는 <code>0O)</code></p>
+
+<h2 id="예제">예제</h2>
+
+<h3 id="0이_접두인_8진_리터럴">"0"이 접두인 8진 리터럴</h3>
+
+<pre class="brush: js example-bad">"use strict";
+
+03;
+
+// SyntaxError: "0"-prefixed octal literals and octal escape sequences
+// are deprecated (0으로 시작하는 8진수와 8진 이스케이프 시퀀스는 더 이상 사용되지 않습니다. )
+</pre>
+
+<h3 id="8진수_이스케이프_시퀀스">8진수 이스케이프 시퀀스</h3>
+
+<pre class="brush: js example-bad">"use strict";
+
+"\251";
+
+// SyntaxError: "0"-prefixed octal literals and octal escape sequences
+// are deprecated (0으로 시작하는 8진수와 8진 이스케이프 시퀀스는 더 이상 사용되지 않습니다. )
+</pre>
+
+<h3 id="유효한_8진_수들">유효한 8진 수들</h3>
+
+<p>0뒤에 "o" 또는 "O"를 사용합니다. :</p>
+
+<pre class="brush: js example-good">0o3;
+</pre>
+
+<p>8진수 이스케이프 시퀀스 대신 16진수 이스케이프 시퀀스를 사용할 수도 있습니다. :</p>
+
+<pre class="brush: js example-good">'\xA9';</pre>
+
+<h2 id="See_also">See also</h2>
+
+<ul>
+ <li><a href="/en-US/docs/Web/JavaScript/Reference/Lexical_grammar#Octal">Lexical grammar</a></li>
+ <li>
+ <p><a href="/en-US/docs/Web/JavaScript/Reference/Errors/Bad_octal">Warning: 08/09 is not a legal ECMA-262 octal constant</a></p>
+ </li>
+</ul>
diff --git a/files/ko/web/javascript/reference/errors/identifier_after_number/index.html b/files/ko/web/javascript/reference/errors/identifier_after_number/index.html
new file mode 100644
index 0000000000..14e5b336c7
--- /dev/null
+++ b/files/ko/web/javascript/reference/errors/identifier_after_number/index.html
@@ -0,0 +1,57 @@
+---
+title: 'SyntaxError: identifier starts immediately after numeric literal'
+slug: Web/JavaScript/Reference/Errors/Identifier_after_number
+tags:
+ - 구문 에러
+ - 변수 이름
+ - 식별자
+ - 자바스크립트
+translation_of: Web/JavaScript/Reference/Errors/Identifier_after_number
+---
+<div>{{JSSidebar("Errors")}}</div>
+
+<h2 id="메세지">메세지</h2>
+
+<pre class="syntaxbox">SyntaxError: Unexpected identifier after numeric literal (Edge)
+SyntaxError: identifier starts immediately after numeric literal (Firefox)
+SyntaxError: Unexpected number (Chrome)
+</pre>
+
+<h2 id="에러_타입">에러 타입</h2>
+
+<p>{{jsxref("SyntaxError")}}</p>
+
+<h2 id="무엇이_잘못되었을까">무엇이 잘못되었을까?</h2>
+
+<p>{{Glossary("식별자", "식별자")}}라고 불리는 변수의 이름은 반드시 지켜야 하는 특정 규칙을 따라야 합니다.</p>
+
+<p>자바스크립트의 식별자는 반드시 문자, 언더스코어(_), 또는 달러 표시($)로 시작돼야 합니다. 숫자로 시작될 수 없습니다. 글자 뒤에만 숫자(0-9)가 올 수 있습니다.</p>
+
+<h2 id="예제">예제</h2>
+
+<h3 id="숫자로_시작하는_변수_이름">숫자로 시작하는 변수 이름</h3>
+
+<p>자바스크립트에서 변수 이름은 숫자로 시작될 수 없습니다. 아래 예제는 에러가 발생합니다:</p>
+
+<pre class="brush: js example-bad">var 1life = 'foo';
+// SyntaxError: identifier starts immediately after numeric literal
+
+var foo = 1life;
+// SyntaxError: identifier starts immediately after numeric literal
+
+alert(1.foo);
+// SyntaxError: identifier starts immediately after numeric literal
+</pre>
+
+<p>숫자가 뒤에 오도록 변수 이름을 변경해야 합니다.</p>
+
+<pre class="brush: js example-good">var life1 = 'foo';
+var foo = life1;
+</pre>
+
+<h2 id="같이_보기">같이 보기</h2>
+
+<ul>
+ <li><a href="https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Lexical_grammar">문법</a></li>
+ <li><a href="https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/Values,_variables,_and_literals#%EB%B3%80%EC%88%98">변수</a>(<a href="/en-US/docs/Web/JavaScript/Guide">JavaScript Guide</a>)</li>
+</ul>
diff --git a/files/ko/web/javascript/reference/errors/illegal_character/index.html b/files/ko/web/javascript/reference/errors/illegal_character/index.html
new file mode 100644
index 0000000000..b3cd3a9750
--- /dev/null
+++ b/files/ko/web/javascript/reference/errors/illegal_character/index.html
@@ -0,0 +1,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><span class="message-body-wrapper"><span class="message-flex-body"><span class="devtools-monospace message-body"><span class="objectBox objectBox-string">일부 편집기와 IDE는 문제가 있는 부분을 알려주거나 적어도 강조 표시를 해주지만 전부는 아닙니다. 이런 에러가 발생했을 때 무엇이 문제인지 찾을 수 없는 경우, 문제가 있는 줄을 지우고 다시 작성하는 것 가장 좋습니다.</span></span></span></span></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>
diff --git a/files/ko/web/javascript/reference/errors/index.html b/files/ko/web/javascript/reference/errors/index.html
new file mode 100644
index 0000000000..79e24cc575
--- /dev/null
+++ b/files/ko/web/javascript/reference/errors/index.html
@@ -0,0 +1,12 @@
+---
+title: JavaScript error reference
+slug: Web/JavaScript/Reference/Errors
+tags:
+ - JavaScript
+translation_of: Web/JavaScript/Reference/Errors
+---
+<p>{{jsSidebar("Errors")}}</p>
+
+<p>오류, 사방에 오류.</p>
+
+<p>{{ListSubPages("/ko/docs/Web/JavaScript/Reference/Errors")}}</p>
diff --git a/files/ko/web/javascript/reference/errors/invalid_array_length/index.html b/files/ko/web/javascript/reference/errors/invalid_array_length/index.html
new file mode 100644
index 0000000000..6ddeb58f06
--- /dev/null
+++ b/files/ko/web/javascript/reference/errors/invalid_array_length/index.html
@@ -0,0 +1,73 @@
+---
+title: 'RangeError: invalid array length'
+slug: Web/JavaScript/Reference/Errors/Invalid_array_length
+translation_of: Web/JavaScript/Reference/Errors/Invalid_array_length
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<h2 id="메세지">메세지</h2>
+
+<pre class="syntaxbox">RangeError: invalid array length (Firefox)
+RangeError: Invalid array length (Chrome)
+RangeError: Invalid array buffer length (Chrome)
+</pre>
+
+<h2 id="에러_형식">에러 형식</h2>
+
+<p>{{jsxref("RangeError")}}</p>
+
+<h2 id="무엇이_잘못_된_것일까">무엇이 잘못 된 것일까?</h2>
+
+<p>다음과 같은 원인 때문이다:</p>
+
+<ul>
+ <li>2<sup>32</sup>와 같거나 이보다 긴, 혹은 음수의 길이를 가진 {{jsxref("Array")}}나 {{jsxref("ArrayBuffer")}}를 생성했기 때문에, 혹은</li>
+ <li>{{jsxref("Array")}} 속성을 2<sup>32</sup>와 같거나 이보다 긴 값으로 설정했기 때문이다.</li>
+</ul>
+
+<p><code>Array와 ArrayBuffer의 길이에 제한을 둔 이유는, Array나 ArrayBuffer의 length 속성은 사인되지 않은(unsigned) 32 비트 정수로 반영되기 때문이다.</code> 즉 <code>Array나 ArrayBuffer는 오직 0 ~ </code>2<sup>32</sup>-1 사이의 값만을 저장할 수 있다.</p>
+
+<p>Array의 length로 해석되는 첫번째 argument로서 문자열 표기를 통해 contructor를 사용하여 Array를 생성할 수 있다.</p>
+
+<p>다른 방법으로는, length 속성을 설정하기 전에 length의 길이에 제한을 두거나, constructor의 aurgment로서 사용할 수 있다.</p>
+
+<h2 id="예제">예제</h2>
+
+<h3 id="잘못된_예제">잘못된 예제</h3>
+
+<pre class="brush: js example-bad">new Array(Math.pow(2, 40))
+new Array(-1)
+new ArrayBuffer(Math.pow(2, 32))
+new ArrayBuffer(-1)
+
+let a = [];
+a.length = a.length - 1; // set -1 to the length property
+
+let b = new Array(Math.pow(2, 32) - 1);
+b.length = b.length + 1; // set 2^32 to the length property
+</pre>
+
+<h3 id="올바른_예제">올바른 예제</h3>
+
+<pre class="brush: js example-good">[ Math.pow(2, 40) ] // [ 1099511627776 ]
+[ -1 ] // [ -1 ]
+new ArrayBuffer(Math.pow(2, 32) - 1)
+new ArrayBuffer(0)
+
+let a = [];
+a.length = Math.max(0, a.length - 1);
+
+let b = new Array(Math.pow(2, 32) - 1);
+b.length = Math.min(0xffffffff, b.length + 1);
+
+// 0xffffffff is the hexadecimal notation for 2^32 - 1
+// which can also be written as (-1 &gt;&gt;&gt; 0)
+</pre>
+
+<h2 id="sect1"> </h2>
+
+<ul>
+ <li>{{jsxref("Array")}}</li>
+ <li>{{jsxref("Array.length")}}</li>
+ <li>{{jsxref("ArrayBuffer")}}</li>
+</ul>
diff --git a/files/ko/web/javascript/reference/errors/invalid_assignment_left-hand_side/index.html b/files/ko/web/javascript/reference/errors/invalid_assignment_left-hand_side/index.html
new file mode 100644
index 0000000000..7a7acf3ca2
--- /dev/null
+++ b/files/ko/web/javascript/reference/errors/invalid_assignment_left-hand_side/index.html
@@ -0,0 +1,50 @@
+---
+title: 'ReferenceError: invalid assignment left-hand side'
+slug: Web/JavaScript/Reference/Errors/Invalid_assignment_left-hand_side
+translation_of: Web/JavaScript/Reference/Errors/Invalid_assignment_left-hand_side
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<h2 id="메시지">메시지</h2>
+
+<pre class="syntaxbox">ReferenceError: invalid assignment left-hand side
+</pre>
+
+<h2 id="에러_타입">에러 타입</h2>
+
+<p>{{jsxref("ReferenceError")}}.</p>
+
+<h2 id="무엇이_잘못되었을까">무엇이 잘못되었을까?</h2>
+
+<p>예상치 못한 할당이 일어났습니다. 이것은 할당 연산자(<a href="/en-US/docs/Web/JavaScript/Reference/Operators/Assignment_Operators">assignment operator</a>)와 비교 연산자(<a href="/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators">comparison operator</a>) 간의 불일치로 인한 것일 겁니다.  예를 들면, "<code>=</code>" 부호는 값을 변수에 할당합니다.  "<code>==</code>" 나  "<code>===</code>"는 값을 비교하는 연산을 합니다.</p>
+
+<h2 id="예">예</h2>
+
+<pre class="brush: js example-bad">if (Math.PI = 3 || Math.PI = 4) {
+ console.log('no way!');
+}
+// ReferenceError: invalid assignment left-hand side
+
+var str = 'Hello, '
++= 'is it me '
++= 'you\'re looking for?';
+// ReferenceError: invalid assignment left-hand side
+</pre>
+
+<p><code>if </code>구문에서, 비교 연산자 ("==")로 비교하려 할 때, 문자열의 연속적인 결합의 경우에는, 플러스("+") 연산자가 필요합니다.</p>
+
+<pre class="brush: js example-good">if (Math.PI == 3 || Math.PI == 4) {
+ console.log('no way!');
+}
+
+var str = 'Hello, '
++ 'from the '
++ 'other side!';
+</pre>
+
+<h2 id="참조">참조</h2>
+
+<ul>
+ <li><a href="/en-US/docs/Web/JavaScript/Reference/Operators/Assignment_Operators">Assignment operators</a></li>
+ <li><a href="/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators">Comparison operators</a></li>
+</ul>
diff --git a/files/ko/web/javascript/reference/errors/invalid_date/index.html b/files/ko/web/javascript/reference/errors/invalid_date/index.html
new file mode 100644
index 0000000000..32cf041e7e
--- /dev/null
+++ b/files/ko/web/javascript/reference/errors/invalid_date/index.html
@@ -0,0 +1,50 @@
+---
+title: 'RangeError: invalid date'
+slug: Web/JavaScript/Reference/Errors/Invalid_date
+translation_of: Web/JavaScript/Reference/Errors/Invalid_date
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<h2 id="메시지">메시지</h2>
+
+<pre class="syntaxbox">RangeError: invalid date (Firefox)
+RangeError: invalid time value (Chrome)
+RangeError: Provided date is not in valid range (Chrome)
+</pre>
+
+<h2 id="에러_종류">에러 종류</h2>
+
+<p>{{jsxref("RangeError")}}</p>
+
+<h2 id="무엇이_잘못_된_걸까">무엇이 잘못 된 걸까?</h2>
+
+<p>유효하지 않은 String이 {{jsxref("Date")}} 나 {{jsxref("Date.parse()")}}에 입력되었습니다.</p>
+
+<h2 id="예시">예시</h2>
+
+<h3 id="올바르지_않은_사용_예시">올바르지 않은 사용 예시</h3>
+
+<p>인식 할 수 없는 string이나 잘못된 요소 값을 포함하는 ISO 형식의 날짜 string은 일반적으로 {{jsxref ( "NaN")}}을 반환합니다. 그러나 구현 방식에 따라 ISO 형식 string을 따르지 않는 경우 <code>RangeError: invalid date</code>가 표시 될 수 있습니다. Firefox의 경우:</p>
+
+<pre class="brush: js example-bad">new Date('foo-bar 2014');
+new Date('2014-25-23').toISOString();
+new Date('foo-bar 2014').toString();
+</pre>
+
+<p>그러나 이 경우, Firefox에서는 {{jsxref("NaN")}} 을 반환합니다:</p>
+
+<pre class="brush: js example-bad">Date.parse('foo-bar 2014'); // NaN</pre>
+
+<p>더 자세한 사항은  {{jsxref("Date.parse()")}} 문서를 참고하세요.</p>
+
+<h3 id="올바른_사용_예시">올바른 사용 예시</h3>
+
+<pre class="brush: js example-good">new Date('05 October 2011 14:48 UTC');</pre>
+
+<h2 id="더_보기">더 보기</h2>
+
+<ul>
+ <li>{{jsxref("Date")}}</li>
+ <li>{{jsxref("Date.prototype.parse()")}}</li>
+ <li>{{jsxref("Date.prototype.toISOString()")}}</li>
+</ul>
diff --git a/files/ko/web/javascript/reference/errors/invalid_for-in_initializer/index.html b/files/ko/web/javascript/reference/errors/invalid_for-in_initializer/index.html
new file mode 100644
index 0000000000..7dd5e15a9a
--- /dev/null
+++ b/files/ko/web/javascript/reference/errors/invalid_for-in_initializer/index.html
@@ -0,0 +1,75 @@
+---
+title: 'SyntaxError: for-in loop head declarations may not have initializers'
+slug: Web/JavaScript/Reference/Errors/Invalid_for-in_initializer
+tags:
+ - for...in 구문
+ - 구문 에러
+ - 배열 반복
+ - 자바스크립트
+ - 초기화
+translation_of: Web/JavaScript/Reference/Errors/Invalid_for-in_initializer
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<h2 id="메세지">메세지</h2>
+
+<pre class="syntaxbox">SyntaxError: for-in loop head declarations cannot have an initializer (Edge)
+SyntaxError: for-in loop head declarations may not have initializers (Firefox)
+SyntaxError: for-in loop variable declaration may not have an initializer. (Chrome)
+</pre>
+
+<h2 id="에러_타입">에러 타입</h2>
+
+<p>엄격(Strict) 모드에서의 {{jsxref("SyntaxError")}}.</p>
+
+<h2 id="무엇이_잘못되었을까">무엇이 잘못되었을까?</h2>
+
+<p><a href="/en-US/docs/Web/JavaScript/Reference/Statements/for...in">for...in</a> 반복문의 선언부에 초기화 구문이 포함되어 있습니다. 즉, |<code>for (var i = 0 in obj)</code>| 구문을 통해 변수가 정의되고 값이 할당된 것을 말합니다. 비엄격 모드(non-strict) 모드에서는 이 초기화 구문이 무시되어 <code>|for (var i in obj)|</code> 처럼 동작합니다. 하지만 엄격 모드에서는 <code>SyntaxError</code> 가 발생합니다.</p>
+
+<h2 id="예제">예제</h2>
+
+<p>이 예제는 <code>SyntaxError</code>를 발생시킵니다.</p>
+
+<pre class="brush: js example-bad">"use strict";
+
+var obj = {a: 1, b: 2, c: 3 };
+
+for (var i = 0 in obj) {
+ console.log(obj[i]);
+}
+
+// SyntaxError: for-in loop head declarations may not have initializers
+</pre>
+
+<h3 id="올바른_for-in_반복문">올바른 for-in 반복문</h3>
+
+<p>for-in 반복문의 선언부에서 초기화 구문(<code>i = 0</code>)을 삭제합니다.</p>
+
+<pre class="brush: js example-good">"use strict";
+
+var obj = {a: 1, b: 2, c: 3 };
+
+for (var i in obj) {
+ console.log(obj[i]);
+}
+</pre>
+
+<h3 id="배열_반복">배열 반복</h3>
+
+<p>for...in 반복문은 <a href="https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Statements/for...in#Array_iteration_and_for...in">배열을 반복하는데에는 사용하지 않습니다</a>. 배열({{jsxref("Array")}})을 반복하기 위해 <code>for-in</code> 반복문 대신에 <code><a href="/en-US/docs/Web/JavaScript/Reference/Statements/for">for</a></code> 반복문을 사용하려고 한 적이 있습니까? <code>for</code> 반복문은 선언부에서 초기화도 할 수 있습니다:</p>
+
+<pre class="brush: js example-good">var arr = [ "a", "b", "c" ]
+
+for (var i = 2; i &lt; arr.length; i++) {
+ console.log(arr[i]);
+}
+
+// "c"</pre>
+
+<h2 id="같이_보기">같이 보기</h2>
+
+<ul>
+ <li><code><a href="/en-US/docs/Web/JavaScript/Reference/Statements/for...in">for...in</a></code></li>
+ <li><code><a href="/en-US/docs/Web/JavaScript/Reference/Statements/for...of">for...of</a></code> – 엄격 모드와 비엄격 모드에서 모두 초기화를 허용하지 않습니다.</li>
+ <li><code><a href="/en-US/docs/Web/JavaScript/Reference/Statements/for">for</a></code> – 배열 반복에 적합하고 초기화도 가능합니다.</li>
+</ul>
diff --git a/files/ko/web/javascript/reference/errors/invalid_for-of_initializer/index.html b/files/ko/web/javascript/reference/errors/invalid_for-of_initializer/index.html
new file mode 100644
index 0000000000..0e60e242e8
--- /dev/null
+++ b/files/ko/web/javascript/reference/errors/invalid_for-of_initializer/index.html
@@ -0,0 +1,64 @@
+---
+title: >-
+ SyntaxError: a declaration in the head of a for-of loop can't have an
+ initializer
+slug: Web/JavaScript/Reference/Errors/Invalid_for-of_initializer
+tags:
+ - For문 초기화
+ - 구문 에러
+ - 반복문
+ - 자바스크립트
+translation_of: Web/JavaScript/Reference/Errors/Invalid_for-of_initializer
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<h2 id="메세지">메세지</h2>
+
+<pre class="syntaxbox">SyntaxError: for-of loop head declarations cannot have an initializer (Edge)
+SyntaxError: a declaration in the head of a for-of loop can't have an initializer (Firefox)
+SyntaxError: for-of loop variable declaration may not have an initializer. (Chrome)
+</pre>
+
+<h2 id="에러_타입">에러 타입</h2>
+
+<p>{{jsxref("SyntaxError")}}</p>
+
+<h2 id="무엇이_잘못되었을까">무엇이 잘못되었을까?</h2>
+
+<p><a href="/en-US/docs/Web/JavaScript/Reference/Statements/for...of">for...of</a> 반복문의 식이 초기화 구문을 포함한 것이 문제입니다. 즉, |<code>for (var i = 0 of iterable)</code>| 구문을 통해 변수가 정의되고 값이 할당된 것을 말합니다. 이 구문은 for-of 반복문에서 허용되지 않습니다. 이 경우 초기화를 할 수 있는 for 반복문이 필요합니다.</p>
+
+<h2 id="예제">예제</h2>
+
+<h3 id="잘못된_for-of_반복문">잘못된 for-of 반복문</h3>
+
+<pre class="brush: js example-bad">let iterable = [10, 20, 30];
+
+for (let value = 50 of iterable) {
+ console.log(value);
+}
+
+// SyntaxError: a declaration in the head of a for-of loop can't
+// have an initializer</pre>
+
+<h3 id="올바른_for-of_반복문">올바른 <code>for-of</code> 반복문</h3>
+
+<p>for-of 반복문에서 초기화 구문(<code>value = 50</code>)을 삭제해야 합니다. 50을 더하고 싶다면 다음 예제와 같이 반복문 안에 추가할 수 있습니다.</p>
+
+<pre class="brush: js example-good">let iterable = [10, 20, 30];
+
+for (let value of iterable) {
+ value += 50;
+ console.log(value);
+}
+// 60
+// 70
+// 80
+</pre>
+
+<h2 id="같이_보기">같이 보기</h2>
+
+<ul>
+ <li><code><a href="/en-US/docs/Web/JavaScript/Reference/Statements/for...of">for...of</a></code></li>
+ <li><code><a href="/en-US/docs/Web/JavaScript/Reference/Statements/for...in">for...in</a></code> – 엄격(Strict) 모드에서는 마찬가지로 초기화를 허용하지 않습니다. (<a href="/en-US/docs/Web/JavaScript/Reference/Errors/Invalid_for-in_initializer">SyntaxError: for-in loop head declarations may not have initializers</a>)</li>
+ <li><code><a href="/en-US/docs/Web/JavaScript/Reference/Statements/for">for</a></code> – 초기화를 허용합니다.</li>
+</ul>
diff --git a/files/ko/web/javascript/reference/errors/is_not_iterable/index.html b/files/ko/web/javascript/reference/errors/is_not_iterable/index.html
new file mode 100644
index 0000000000..8e00501d54
--- /dev/null
+++ b/files/ko/web/javascript/reference/errors/is_not_iterable/index.html
@@ -0,0 +1,106 @@
+---
+title: 'TypeError: ''x'' is not iterable'
+slug: Web/JavaScript/Reference/Errors/is_not_iterable
+tags:
+ - JavaScript
+ - 레퍼런스
+ - 에러
+ - 타입에러
+translation_of: Web/JavaScript/Reference/Errors/is_not_iterable
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<h2 id="메시지">메시지</h2>
+
+<pre class="syntaxbox">TypeError: 'x' is not iterable (Firefox, Chrome)
+TypeError: 'x' is not a function or its return value is not iterable (Chrome)
+</pre>
+
+<h2 id="에러_타입">에러 타입</h2>
+
+<p>{{jsxref("TypeError")}}</p>
+
+<h2 id="무엇이_문제인가요">무엇이 문제인가요?</h2>
+
+<p>{{jsxref("Promise.all")}} 또는 {{jsxref("TypedArray.from")}} 과 같은 함수의 아규먼트 또는 <a href="/en-US/docs/Web/JavaScript/Guide/Loops_and_iteration#for...of_statement">for…of</a> 의 right hand-side 로 주어진 값이 <a href="/ko/docs/Web/JavaScript/Reference/Iteration_protocols">iterable 객체</a>가 아닙니다. iterable 은 {{jsxref("Array")}}, {{jsxref("String")}} 또는 {{jsxref("Map")}}, 생성자 결과, 또는 <a href="/ko/docs/Web/JavaScript/Reference/Iteration_protocols#The_iterable_protocol">iterable protocol</a> 구현 객체와 같은 내장 iterable 타입이 될 수 있습니다.</p>
+
+<h2 id="예제">예제</h2>
+
+<h3 id="모든_객체_프로퍼티_iterating">모든 객체 프로퍼티 iterating</h3>
+
+<p>JavaScript 에서 <a href="/ko/docs/Web/JavaScript/Reference/Iteration_protocols#The_iterable_protocol">iterable protocol</a> 을 구현하지 않은 {{jsxref("Object")}} 는 iterable 이 아닙니다.<br>
+ 그러므로, 객체의 프로퍼티를 반복하기 위해 <a href="/ko/docs/Web/JavaScript/Guide/Loops_and_iteration#for...of_statement">for…of</a> 를 사용하면 안됩니다.</p>
+
+<pre class="brush: js example-bad">var obj = { 'France': 'Paris', 'England': 'London' };
+for (let p of obj) { // TypeError: obj is not iterable
+ // …
+}
+</pre>
+
+<p>객체의 모든 항목 또는 프로퍼티를 반복하려면 대신 {{jsxref("Object.keys")}} 또는 {{jsxref("Object.entries")}} 를 사용해야 합니다.</p>
+
+<pre class="brush: js example-good">var obj = { 'France': 'Paris', 'England': 'London' };
+// 모든 프로퍼티 이름을 iterate:
+for (let country of Object.keys(obj)) {
+ var capital = obj[country];
+ console.log(country, capital);
+}
+
+for (const [country, capital] of Object.entries(obj))
+ console.log(country, capital);
+
+
+</pre>
+
+<p>이 유즈 케이스에 대한 다른 옵션은 {{jsxref("Map")}} 을 사용하는 것입니다.</p>
+
+<pre class="brush: js example-good">var map = new Map;
+map.set('France', 'Paris');
+map.set('England', 'London');
+// 모든 프로퍼티 이름 iterate
+for (let country of map.keys()) {
+ let capital = map[country];
+ console.log(country, capital);
+}
+
+for (let capital of map.values())
+ console.log(capital);
+
+for (const [country, capital] of map.entries())
+ console.log(country, capital);
+</pre>
+
+<h3 id="Generator_iterating">Generator iterating</h3>
+
+<p><a href="/ko/docs/Web/JavaScript/Guide/Iterators_and_Generators#Generators">Generators</a> 는 iterable 객체를 생성하기 위해 호출하는 함수입니다.</p>
+
+<pre class="brush: js example-bad">function* generate(a, b) {
+ yield a;
+ yield b;
+}
+
+for (let x of generate) // TypeError: generate is not iterable
+ console.log(x);
+</pre>
+
+<p>generator 가 호출되지 않으면, generator 에 해당하는 {{jsxref("Function")}} 객체를 호출할수는 있지만 interable 하지는 않습니다. generator 호출은 generator 실행동안 yield 된 모든 값을 iterate 하는 iterable 객체를 생성합니다.</p>
+
+<pre class="brush: js example-good">function* generate(a, b) {
+ yield a;
+ yield b;
+}
+
+for (let x of generate(1,2))
+ console.log(x);
+</pre>
+
+<h2 id="함께_보기">함께 보기</h2>
+
+<ul>
+ <li><a href="/ko/docs/Web/JavaScript/Reference/Iteration_protocols#The_iterable_protocol">iterable protocol</a></li>
+ <li>{{jsxref("Object.keys")}}</li>
+ <li>{{jsxref("Object.entries")}}</li>
+ <li>{{jsxref("Map")}}</li>
+ <li><a href="/ko/docs/Web/JavaScript/Guide/Iterators_and_Generators#Generators">generators</a></li>
+ <li><a href="/ko/docs/Web/JavaScript/Guide/Loops_and_iteration#for...of_statement">for…of</a></li>
+</ul>
diff --git a/files/ko/web/javascript/reference/errors/json_bad_parse/index.html b/files/ko/web/javascript/reference/errors/json_bad_parse/index.html
new file mode 100644
index 0000000000..c73b082dbb
--- /dev/null
+++ b/files/ko/web/javascript/reference/errors/json_bad_parse/index.html
@@ -0,0 +1,105 @@
+---
+title: 'SyntaxError: JSON.parse: bad parsing'
+slug: Web/JavaScript/Reference/Errors/JSON_bad_parse
+translation_of: Web/JavaScript/Reference/Errors/JSON_bad_parse
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<h2 id="메시지">메시지</h2>
+
+<pre class="syntaxbox">SyntaxError: JSON.parse: unterminated string literal
+SyntaxError: JSON.parse: bad control character in string literal
+SyntaxError: JSON.parse: bad character in string literal
+SyntaxError: JSON.parse: bad Unicode escape
+SyntaxError: JSON.parse: bad escape character
+SyntaxError: JSON.parse: unterminated string
+SyntaxError: JSON.parse: no number after minus sign
+SyntaxError: JSON.parse: unexpected non-digit
+SyntaxError: JSON.parse: missing digits after decimal point
+SyntaxError: JSON.parse: unterminated fractional number
+SyntaxError: JSON.parse: missing digits after exponent indicator
+SyntaxError: JSON.parse: missing digits after exponent sign
+SyntaxError: JSON.parse: exponent part is missing a number
+SyntaxError: JSON.parse: unexpected end of data
+SyntaxError: JSON.parse: unexpected keyword
+SyntaxError: JSON.parse: unexpected character
+SyntaxError: JSON.parse: end of data while reading object contents
+SyntaxError: JSON.parse: expected property name or '}'
+SyntaxError: JSON.parse: end of data when ',' or ']' was expected
+SyntaxError: JSON.parse: expected ',' or ']' after array element
+SyntaxError: JSON.parse: end of data when property name was expected
+SyntaxError: JSON.parse: expected double-quoted property name
+SyntaxError: JSON.parse: end of data after property name when ':' was expected
+SyntaxError: JSON.parse: expected ':' after property name in object
+SyntaxError: JSON.parse: end of data after property value in object
+SyntaxError: JSON.parse: expected ',' or '}' after property value in object
+SyntaxError: JSON.parse: expected ',' or '}' after property-value pair in object literal
+SyntaxError: JSON.parse: property names must be double-quoted strings
+SyntaxError: JSON.parse: expected property name or '}'
+SyntaxError: JSON.parse: unexpected character
+SyntaxError: JSON.parse: unexpected non-whitespace character after JSON data
+</pre>
+
+<h2 id="에러_타입">에러 타입</h2>
+
+<p>{{jsxref("SyntaxError")}}</p>
+
+<h2 id="뭐가_잘못됬나요">뭐가 잘못됬나요?</h2>
+
+<p>{{jsxref("JSON.parse()")}} 는 문자열을 JSON으로 파싱한다. 이 문자열은 유효한 JSON 형태의 문자열이어야 하며, 유효하지 않을 경우 에러가 발생한다.</p>
+
+<h2 id="예제">예제</h2>
+
+<h3 id="JSON.parse()_는_여분의_콤마를_허용하지_않는다."><code>JSON.parse()</code> 는 여분의 콤마를 허용하지 않는다.</h3>
+
+<p>다음 두 줄은 SyntaxError를 발생시킨다:</p>
+
+<pre class="brush: js example-bad">JSON.parse('[1, 2, 3, 4,]');
+JSON.parse('{"foo": 1,}');
+// SyntaxError JSON.parse: unexpected character
+// at line 1 column 14 of the JSON data
+</pre>
+
+<p>끝에 오는 콤마를 제거하면 정확하게 JSON으로 파싱한다:</p>
+
+<pre class="brush: js example-good">JSON.parse('[1, 2, 3, 4]');
+JSON.parse('{"foo": 1}');</pre>
+
+<h3 id="프로퍼티_이름은_반드시_쌍따옴표로_표현해야_한다.">프로퍼티 이름은 반드시 쌍따옴표로 표현해야 한다.</h3>
+
+<p>'foo'처럼 프로퍼티를 작은 따옴표로 감싸서는 안된다.</p>
+
+<pre class="brush: js example-bad">JSON.parse("{'foo': 1}");
+// SyntaxError: JSON.parse: expected property name or '}'
+// at line 1 column 2 of the JSON data</pre>
+
+<p>대신에 "foo" 처럼 써야 한다:</p>
+
+<pre class="brush: js example-good">JSON.parse('{"foo": 1}');</pre>
+
+<h3 id="리딩_제로와_십진_소수점">리딩 제로와 십진 소수점</h3>
+
+<p>01 처럼 리딩제로를 사용할 수 없고, 십진 소수점 뒤에는 최소한 하나의 숫자는 등장해야 한다.</p>
+
+<pre class="brush: js example-bad">JSON.parse('{"foo": 01}');
+// SyntaxError: JSON.parse: expected ',' or '}' after property value
+// in object at line 1 column 2 of the JSON data
+
+JSON.parse('{"foo": 1.}');
+// SyntaxError: JSON.parse: unterminated fractional number
+// at line 1 column 2 of the JSON data
+</pre>
+
+<p>대신에 리딩제로를 없애고 1 이라고 쓰고, 십진 소수점 뒤에는 반드시 하나 이상의 숫자를 적도록 한다:</p>
+
+<pre class="brush: js example-good">JSON.parse('{"foo": 1}');
+JSON.parse('{"foo": 1.0}');
+</pre>
+
+<h2 id="또다른_내용">또다른 내용</h2>
+
+<ul>
+ <li>{{jsxref("JSON")}}</li>
+ <li>{{jsxref("JSON.parse()")}}</li>
+ <li>{{jsxref("JSON.stringify()")}}</li>
+</ul>
diff --git a/files/ko/web/javascript/reference/errors/malformed_formal_parameter/index.html b/files/ko/web/javascript/reference/errors/malformed_formal_parameter/index.html
new file mode 100644
index 0000000000..e258ba49e6
--- /dev/null
+++ b/files/ko/web/javascript/reference/errors/malformed_formal_parameter/index.html
@@ -0,0 +1,57 @@
+---
+title: 'SyntaxError: Malformed formal parameter'
+slug: Web/JavaScript/Reference/Errors/Malformed_formal_parameter
+translation_of: Web/JavaScript/Reference/Errors/Malformed_formal_parameter
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<h2 id="Message">Message</h2>
+
+<pre class="syntaxbox">SyntaxError: malformed formal parameter (Firefox)
+</pre>
+
+<h2 id="Error_type">Error type</h2>
+
+<p>{{jsxref("SyntaxError")}}</p>
+
+<h2 id="무엇이_잘못_되었을까요">무엇이 잘못 되었을까요?</h2>
+
+<p>코드에는 최소한 두 개의 인수가 전달 된 <code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function()</a></code> 생성자가 있습니다. 마지막 인수는 작성중인 새 함수의 소스코드 입니다.  나머지는 모두 새 함수의 인수 목록을 구성합니다.</p>
+
+<p>인수 목록이 어딘가 잘못되었습니다. 아마도 실수로 인수 이름으로 if 또는 var와 같은 키워드를 선택했거나 인수 목록에 갈곳 잃은 구두점이 있을 수 있습니다. 또는 실수로 숫자나 개체와 같은 잘못된 값을 전달한 것일 수 있습니다.</p>
+
+<h2 id="그래_내_문제가_해결됐어._근데_왜_말_안해줬어">그래, 내 문제가 해결됐어. 근데 왜 말 안해줬어?</h2>
+
+<p>틀림 없이 오류 메세지의 표현은 다소 이상한 부분이 있습니다. "공식 매개 변수"는 "함수 인수"를 말하는 좋은 방법입니다. 우리는 "잘못된 형식의 단어를 사용했다"라고 표현 합니다.</p>
+
+<h2 id="Examples">Examples</h2>
+
+<h3 id="Invalid_cases">Invalid cases</h3>
+
+<pre class="brush: js example-bad">var f = Function('x y', 'return x + y;');
+// SyntaxError (missing a comma)
+
+var f = Function('x,', 'return x;');
+// SyntaxError (extraneous comma)
+
+var f = Function(37, "alert('OK')");
+// SyntaxError (numbers can't be argument names)
+</pre>
+
+<h3 id="Valid_cases">Valid cases</h3>
+
+<pre class="brush: js example-good">var f = Function('x, y', 'return x + y;'); // correctly punctuated
+
+var f = Function('x', 'return x;');
+
+// if you can, avoid using Function - this is much faster
+var f = function(x) { return x; };
+</pre>
+
+<h2 id="See_also">See also</h2>
+
+<ul>
+ <li><code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function()</a></code></li>
+ <li><a href="/en-US/docs/Web/JavaScript/Guide/Functions">About functions</a></li>
+ <li><a href="https://www.gutenberg.org/ebooks/84"><em>Frankenstein</em> by Mary Wollstonecraft Shelley, full e-text</a> ("Cursed (although I curse myself) be the hands that formed you! You have made me wretched beyond expression. You have left me no power to consider whether I am just to you or not. Begone! Relieve me from the sight of your detested form.")</li>
+</ul>
diff --git a/files/ko/web/javascript/reference/errors/missing_bracket_after_list/index.html b/files/ko/web/javascript/reference/errors/missing_bracket_after_list/index.html
new file mode 100644
index 0000000000..b9149ac159
--- /dev/null
+++ b/files/ko/web/javascript/reference/errors/missing_bracket_after_list/index.html
@@ -0,0 +1,56 @@
+---
+title: 'SyntaxError: missing ] after element list'
+slug: Web/JavaScript/Reference/Errors/Missing_bracket_after_list
+tags:
+ - 구문 에러
+ - 배열 초기자
+ - 자바스크립트
+translation_of: Web/JavaScript/Reference/Errors/Missing_bracket_after_list
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<h2 id="메세지">메세지</h2>
+
+<pre class="syntaxbox">SyntaxError: missing ] after element list
+</pre>
+
+<h2 id="에러_타입">에러 타입</h2>
+
+<p>{{jsxref("SyntaxError")}}.</p>
+
+<h2 id="무엇이_잘못되었을까">무엇이 잘못되었을까?</h2>
+
+<p>배열 초기자 구문에 오류가 있습니다. 닫는 대괄호("<code>]</code>") 또는 콤마("<code>,</code>")가 빠진 것 같습니다.</p>
+
+<h2 id="예제">예제</h2>
+
+<h3 id="완성되지_않은_배열_초기자">완성되지 않은 배열 초기자</h3>
+
+<pre class="brush: js example-bad">var list = [1, 2,
+
+var instruments = [
+ 'Ukulele',
+ 'Guitar',
+ 'Piano'
+};
+
+var data = [{foo: 'bar'} {bar: 'foo'}];
+</pre>
+
+<p>바르게 고치면:</p>
+
+<pre class="brush: js example-good">var list = [1, 2];
+
+var instruments = [
+ 'Ukulele',
+ 'Guitar',
+ 'Piano'
+];
+
+var data = [{foo: 'bar'}, {bar: 'foo'}];</pre>
+
+<h2 id="같이_보기">같이 보기</h2>
+
+<ul>
+ <li>{{jsxref("Array")}}</li>
+</ul>
diff --git a/files/ko/web/javascript/reference/errors/missing_colon_after_property_id/index.html b/files/ko/web/javascript/reference/errors/missing_colon_after_property_id/index.html
new file mode 100644
index 0000000000..4fe7865664
--- /dev/null
+++ b/files/ko/web/javascript/reference/errors/missing_colon_after_property_id/index.html
@@ -0,0 +1,78 @@
+---
+title: 'SyntaxError: missing : after property id'
+slug: Web/JavaScript/Reference/Errors/Missing_colon_after_property_id
+tags:
+ - 객체 초기자
+ - 계산된 속성
+ - 구문 에러
+ - 자바스크립트
+translation_of: Web/JavaScript/Reference/Errors/Missing_colon_after_property_id
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<h2 id="메세지">메세지</h2>
+
+<pre class="syntaxbox">SyntaxError: Expected ':' (Edge)
+SyntaxError: missing : after property id (Firefox)
+</pre>
+
+<h2 id="에러_타입">에러 타입</h2>
+
+<p>{{jsxref("SyntaxError")}}</p>
+
+<h2 id="무엇이_문제일까">무엇이 문제일까?</h2>
+
+<p><a href="https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/Object_initializer">객체 초기자</a> 구문으로 객체를 만들 때 콜론(<code>:</code>)은 객체의 속성을 키와 값으로 분리합니다.</p>
+
+<pre class="brush: js">var obj = { propertyKey: 'value' };
+</pre>
+
+<h2 id="예제">예제</h2>
+
+<h3 id="콜론_vs._등호">콜론 vs. 등호</h3>
+
+<p>객체 초기자 구문에는 등호를 사용할 수 없으므로 아래 예제는 실패합니다.</p>
+
+<pre class="brush: js example-bad">var obj = { propertyKey = 'value' };
+// SyntaxError: missing : after property id
+</pre>
+
+<p>콜론을 사용하거나 객체를 생성한 뒤에 대괄호를 사용하여 새로운 속성을 할당하는 것이 바릅니다.</p>
+
+<pre class="brush: js example-good">var obj = { propertyKey: 'value' };
+
+// 또는
+
+var obj = { };
+obj['propertyKey'] = 'value';
+</pre>
+
+<h3 id="빈_속성">빈 속성</h3>
+
+<p>아래와 같이 빈 속성을 만들 수 없습니다:</p>
+
+<pre class="brush: js example-bad">var obj = { propertyKey; };
+// SyntaxError: missing : after property id
+</pre>
+
+<p>만약 값 없이 속성을 정의해야 한다면 값으로 {{jsxref("null")}}을 지정할 수 있습니다.</p>
+
+<pre class="brush: js example-good">var obj = { propertyKey: null };</pre>
+
+<h3 id="계산된_속성">계산된 속성</h3>
+
+<p>식으로 속성의 키를 만드는 경우 대괄호를 사용해야 합니다. 그렇지 않으면 속성 이름에 계산된 값을 사용할 수 없습니다:</p>
+
+<pre class="brush: js example-bad">var obj = { 'b'+'ar': 'foo' };
+// SyntaxError: missing : after property id
+</pre>
+
+<p>식에 대괄호를 넣으세요 <code>[]</code>:</p>
+
+<pre class="brush: js example-good">var obj = { ['b'+'ar']: 'foo' };</pre>
+
+<h2 id="같이_보기">같이 보기</h2>
+
+<ul>
+ <li><a href="https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/Object_initializer">객체 초기자</a></li>
+</ul>
diff --git a/files/ko/web/javascript/reference/errors/missing_curly_after_property_list/index.html b/files/ko/web/javascript/reference/errors/missing_curly_after_property_list/index.html
new file mode 100644
index 0000000000..8e0abf94db
--- /dev/null
+++ b/files/ko/web/javascript/reference/errors/missing_curly_after_property_list/index.html
@@ -0,0 +1,47 @@
+---
+title: 'SyntaxError: missing } after property list'
+slug: Web/JavaScript/Reference/Errors/Missing_curly_after_property_list
+translation_of: Web/JavaScript/Reference/Errors/Missing_curly_after_property_list
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<h2 id="메시지">메시지</h2>
+
+<pre class="syntaxbox">SyntaxError: missing } after property list
+</pre>
+
+<h2 id="에러_유형">에러 유형</h2>
+
+<p>{{jsxref("SyntaxError")}}</p>
+
+<h2 id="무엇이_잘못_된_걸까">무엇이 잘못 된 걸까?</h2>
+
+<p><a href="/en-US/docs/Web/JavaScript/Reference/Operators/Object_initializer">객체를 초기화 하는 부분</a> 어딘가에 구문에 실수가 있습니다. 실제로 빠진 중괄호 일 수도 있지만, 누락 된 쉼표 일 수도 있습니다. 또한 닫는 중괄호나 괄호가 올바른 순서인지 확인하세요. 코드를 들여쓰기하거나 서식을 지정하면 좀 더 보기 쉽습니다.</p>
+
+<h2 id="예시">예시</h2>
+
+<h3 id="쉼표를_까먹은_경우">쉼표를 까먹은 경우</h3>
+
+<p>종종 객체 초기화 과정에서 쉼표를 빠트리는 경우가 있습니다:</p>
+
+<pre class="brush: js example-bad">var obj = {
+ a: 1,
+ b: { myProp: 2 }
+ c: 3
+};
+</pre>
+
+<p>올바른 예시는 다음과 같습니다:</p>
+
+<pre class="brush: js example-good">var obj = {
+ a: 1,
+ b: { myProp: 2 },
+ c: 3
+};
+</pre>
+
+<h2 id="더_보기">더 보기</h2>
+
+<ul>
+ <li><a href="/en-US/docs/Web/JavaScript/Reference/Operators/Object_initializer">Object initializer</a></li>
+</ul>
diff --git a/files/ko/web/javascript/reference/errors/missing_initializer_in_const/index.html b/files/ko/web/javascript/reference/errors/missing_initializer_in_const/index.html
new file mode 100644
index 0000000000..be116cf3a4
--- /dev/null
+++ b/files/ko/web/javascript/reference/errors/missing_initializer_in_const/index.html
@@ -0,0 +1,55 @@
+---
+title: 'SyntaxError: missing = in const declaration'
+slug: Web/JavaScript/Reference/Errors/Missing_initializer_in_const
+translation_of: Web/JavaScript/Reference/Errors/Missing_initializer_in_const
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<h2 id="메시지">메시지</h2>
+
+<pre class="syntaxbox">SyntaxError: Const must be initalized (Edge)
+SyntaxError: missing = in const declaration (Firefox)
+SyntaxError: Missing initializer in const declaration (Chrome)
+</pre>
+
+<h2 id="에러_유형">에러 유형</h2>
+
+<p>{{jsxref("SyntaxError")}}</p>
+
+<h2 id="무엇이_잘못되었나요">무엇이 잘못되었나요?</h2>
+
+<p>상수는 일반적인 실행 중에 프로그램에 의해 변경될 수 없는 값입니다. 상수는 재할당되거나 재선언될 수 없습니다. 자바스크립트에서 상수는 <code><a href="/en-US/docs/Web/JavaScript/Reference/Statements/const">const</a></code> 키워드를 사용해 선언됩니다. 상수는 이니셜라이저가 필요합니다. 다시말해, 한 문장 안에 선언과 동시에 초기화가 이루어져야 합니다 (따라서 추후 수정 불가).</p>
+
+<h2 id="예제">예제</h2>
+
+<h3 id="const_이니셜라이저가_빠진_경우">const 이니셜라이저가 빠진 경우</h3>
+
+<p><code>var</code> 또는 <code>let</code>과 달리, <code>const</code> 선언에서는 반드시 값을 정의해야 합니다.</p>
+
+<pre class="brush: js example-bad">const COLUMNS;
+// SyntaxError: missing = in const declaration</pre>
+
+<h3 id="에러_수정">에러 수정</h3>
+
+<p>해당 에러를 수정하기 위해서 여러가지 방법이 존재합니다. 문제 상황에서 상수를 사용해 무엇을 하려 했는지 확인해보세요.</p>
+
+<h4 id="상수_값_추가">상수 값 추가</h4>
+
+<p>선언과 같은 문장에 상수 값을 정의합니다.</p>
+
+<pre class="brush: js example-good">const COLUMNS = 80;</pre>
+
+<h4 id="const_let_var"><code>const</code>, <code>let</code>, <code>var</code>?</h4>
+
+<p>상수를 선언할 목적이 아니었다면 <code>const</code>를 사용하지 마세요. <code>let</code> 키워드를 이용한 블록범위 변수, 또는 <code>var</code> 키워드를 이용한 전역 변수를 사용할 수 있습니다. 두 가지 경우 모두 초기값을 요구하지 않습니다.</p>
+
+<pre class="brush: js example-good">let columns;
+</pre>
+
+<h2 id="같이_보기">같이 보기</h2>
+
+<ul>
+ <li><code><a href="/en-US/docs/Web/JavaScript/Reference/Statements/const">const</a></code></li>
+ <li><code><a href="/en-US/docs/Web/JavaScript/Reference/Statements/let">let</a></code></li>
+ <li><code><a href="/en-US/docs/Web/JavaScript/Reference/Statements/var">var</a></code></li>
+</ul>
diff --git a/files/ko/web/javascript/reference/errors/missing_name_after_dot_operator/index.html b/files/ko/web/javascript/reference/errors/missing_name_after_dot_operator/index.html
new file mode 100644
index 0000000000..a549e48e51
--- /dev/null
+++ b/files/ko/web/javascript/reference/errors/missing_name_after_dot_operator/index.html
@@ -0,0 +1,63 @@
+---
+title: 'SyntaxError: missing name after . operator'
+slug: Web/JavaScript/Reference/Errors/Missing_name_after_dot_operator
+translation_of: Web/JavaScript/Reference/Errors/Missing_name_after_dot_operator
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<h2 id="메시지">메시지</h2>
+
+<pre class="syntaxbox">SyntaxError: missing name after . operator
+</pre>
+
+<h2 id="에러_타입">에러 타입</h2>
+
+<p>{{jsxref("SyntaxError")}}</p>
+
+<h2 id="무엇이_잘_못_되었을까">무엇이 잘 못 되었을까?</h2>
+
+<p>점 연산자 (<code>.</code>)는 <a href="/en-US/docs/Web/JavaScript/Reference/Operators/Property_Accessors">프로퍼티 접근</a>을 위해 사용합니다. 접근해야 하는 프로퍼티 명은 제대로 명시 해야 합니다. 연산 프로퍼티에 접근하려면, 점 연산자를 사용하지 않고 대괄호를 사용하는 것으로 프로퍼티 접근 방식을 바꿔야 합니다. 이런 방식들이 표현식의 계산을 수행시켜줄 것입니다. 아마 당신은 연결을 하려고 했을 것입니다. 이 경우에는 더하기 연산자(<code>+</code>)가 필요합니다. 아래의 예제를 봐주세요. </p>
+
+<h2 id="예제">예제</h2>
+
+<h3 id="프로퍼티_접근">프로퍼티 접근</h3>
+
+<p>JavaScript <a href="/en-US/docs/Web/JavaScript/Reference/Operators/Property_Accessors">프로퍼티 접근자</a>는 점(.) 또는 대괄호(<code>[]</code>) 중 하나만 사용한다. 대괄호는 연산 프로퍼티에 접근을 허용합니다.   </p>
+
+<pre class="brush: js example-bad">var obj = { foo: { bar: "baz", bar2: "baz2" } };
+var i = 2;
+
+obj.[foo].[bar]
+// SyntaxError: missing name after . operator
+
+obj.foo."bar"+i;
+// SyntaxError: missing name after . operator
+</pre>
+
+<p>이 코드를 고치려면, 오브젝트에 이런 식으로 접근해야 합니다.:</p>
+
+<pre class="brush: js example-good">obj.foo.bar; // "baz"
+// 또는 대신에
+obj["foo"]["bar"]; // "baz"
+
+// 연산 프로퍼티는 대괄호가 필요합니다.
+obj.foo["bar" + i]; // "baz2"
+</pre>
+
+<h3 id="프로퍼티_접근_vs._연결">프로퍼티 접근 vs. 연결</h3>
+
+<p>다른 프로그램 언어를 사용하다 왔다면 ( {{Glossary("PHP")}} 같은), 점 연산자(<code>.</code>)와 연결 연산자(<code>+</code>)를 혼동해서 쓰기가 더 쉬울 것입니다.</p>
+
+<pre class="brush: js example-bad">console.log("Hello" . "world");
+
+// SyntaxError: missing name after . operator</pre>
+
+<p>대신에 결합을 위해서는 더하기 표식을 사용해야 합니다.:</p>
+
+<pre class="brush: js example-good">console.log("Hello" + "World");</pre>
+
+<h2 id="참조">참조</h2>
+
+<ul>
+ <li><a href="/en-US/docs/Web/JavaScript/Reference/Operators/Property_Accessors">Property accessors</a></li>
+</ul>
diff --git a/files/ko/web/javascript/reference/errors/missing_parenthesis_after_argument_list/index.html b/files/ko/web/javascript/reference/errors/missing_parenthesis_after_argument_list/index.html
new file mode 100644
index 0000000000..1f28ac1104
--- /dev/null
+++ b/files/ko/web/javascript/reference/errors/missing_parenthesis_after_argument_list/index.html
@@ -0,0 +1,38 @@
+---
+title: 'SyntaxError: missing ) after argument list'
+slug: Web/JavaScript/Reference/Errors/Missing_parenthesis_after_argument_list
+translation_of: Web/JavaScript/Reference/Errors/Missing_parenthesis_after_argument_list
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<h2 id="Message">Message</h2>
+
+<pre class="syntaxbox">SyntaxError: missing ) after argument list
+</pre>
+
+<h2 id="Error_type">Error type</h2>
+
+<p>{{jsxref("SyntaxError")}}.</p>
+
+<h2 id="What_went_wrong">What went wrong?</h2>
+
+<p>function을 호출하는 방식에 에러가 있는 것입니다. 맞춤법, 연산자 누락 또는 이스케이프 처리를 하지 않는 문자열과 같은 것으로 발생될 수 있습니다.</p>
+
+<h2 id="Examples">Examples</h2>
+
+<p>문자열을 합치는 "+" 연산자가 없기 때문에, Javascript는 <code>log</code> function에 대한 인수를 <code>"PI: "</code>로 인식을 합니다. 이 경우, 닫침 괄호가 누락된 것으로 인식을 합니다.</p>
+
+<pre class="brush: js example-bad">console.log('PI: ' Math.PI);
+// SyntaxError: missing ) after argument list
+</pre>
+
+<p>You can correct the <code>log</code> call by adding the "<code>+</code>" operator:</p>
+
+<pre class="brush: js example-good">console.log('PI: ' + Math.PI);
+// "PI: 3.141592653589793"</pre>
+
+<h2 id="See_also">See also</h2>
+
+<ul>
+ <li><a href="/en-US/docs/Web/JavaScript/Guide/Functions">Functions</a></li>
+</ul>
diff --git a/files/ko/web/javascript/reference/errors/missing_parenthesis_after_condition/index.html b/files/ko/web/javascript/reference/errors/missing_parenthesis_after_condition/index.html
new file mode 100644
index 0000000000..cd7b368aa4
--- /dev/null
+++ b/files/ko/web/javascript/reference/errors/missing_parenthesis_after_condition/index.html
@@ -0,0 +1,65 @@
+---
+title: 'SyntaxError: missing ) after condition'
+slug: Web/JavaScript/Reference/Errors/Missing_parenthesis_after_condition
+translation_of: Web/JavaScript/Reference/Errors/Missing_parenthesis_after_condition
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<h2 id="메시지">메시지</h2>
+
+<pre class="syntaxbox">SyntaxError: missing ) after condition
+</pre>
+
+<h2 id="에러_유형">에러 유형</h2>
+
+<p>{{jsxref("SyntaxError")}}</p>
+
+<h2 id="무엇이_잘못_된_걸까">무엇이 잘못 된 걸까?</h2>
+
+<p><code><a href="/en-US/docs/Web/JavaScript/Reference/Statements/if...else">if</a></code>조건문에 에러가 있습니다. 어떠한 프로그래밍 언어에서든 코드는 입력값에 따라 의사를 결정하고 행동을 수행해야합니다. 지정된 조건이 true이면 if 문이 명령문을 실행합니다. 자바스크립트에서는 이 조건이 <code><a href="/en-US/docs/Web/JavaScript/Reference/Statements/if...else">if</a></code>문 다음의 괄호에 있어야 합니다. 다음은 그 예시입니다.</p>
+
+<pre class="brush: js">if (condition) {
+ // do something if the condition is true
+}</pre>
+
+<h2 id="예시">예시</h2>
+
+<p>실수가 있을 수 있으니, 모든 괄호를 주의깊게 확인하세요.</p>
+
+<pre class="brush: js example-bad">if (3 &gt; Math.PI {
+ console.log("wait what?");
+}
+
+// SyntaxError: missing ) after condition
+</pre>
+
+<p>이 코드를 고치기 위해선, 조건문을 괄호로 닫아야 합니다.</p>
+
+<pre class="brush: js example-good">if (3 &gt; Math.PI) {
+ console.log("wait what?");
+}</pre>
+
+<p>다른 프로그래밍 언어를 배운 경우, 자바스크립트에서는 다르게 쓰이거나, 쓰이지 않는 키워드를 사용하기 쉽습니다.</p>
+
+<pre class="brush: js example-bad">if (done is true) {
+ console.log("we are done!");
+}
+
+// SyntaxError: missing ) after condition
+</pre>
+
+<p>이 경우 올바른 <a href="/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators">비교연산자</a>를 사용해야 합니다. 그 예시로:</p>
+
+<pre class="brush: js example-good">if (done === true) {
+ console.log("we are done!");
+}</pre>
+
+<h2 id="더_보기">더 보기</h2>
+
+<ul>
+ <li><code><a href="/en-US/docs/Web/JavaScript/Reference/Statements/if...else">if...else</a></code></li>
+ <li><a href="/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators">Comparison operators</a></li>
+ <li>
+ <p><a href="/en-US/docs/Learn/JavaScript/Building_blocks/conditionals">Making decisions in your code — conditionals</a></p>
+ </li>
+</ul>
diff --git a/files/ko/web/javascript/reference/errors/missing_semicolon_before_statement/index.html b/files/ko/web/javascript/reference/errors/missing_semicolon_before_statement/index.html
new file mode 100644
index 0000000000..ec3334b52f
--- /dev/null
+++ b/files/ko/web/javascript/reference/errors/missing_semicolon_before_statement/index.html
@@ -0,0 +1,63 @@
+---
+title: 'SyntaxError: missing ; before statement'
+slug: Web/JavaScript/Reference/Errors/Missing_semicolon_before_statement
+translation_of: Web/JavaScript/Reference/Errors/Missing_semicolon_before_statement
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<h2 id="메시지">메시지</h2>
+
+<pre class="syntaxbox">SyntaxError: missing ; before statement
+</pre>
+
+<h2 id="오류_타입">오류 타입</h2>
+
+<p>{{jsxref("SyntaxError")}}.</p>
+
+<h2 id="무엇이_잘_못_되었나">무엇이 잘 못 되었나?</h2>
+
+<p>어딘가에 세미 콜론(<code>;</code>)이 빠져 있습니다.  <a href="/en-US/docs/Web/JavaScript/Reference/Statements">JavaScript 구문</a>은 반드시 세미 콜론으로 끝나야 합니다. 일부는 자동 세미콜론 삽입 (<a href="/en-US/docs/Web/JavaScript/Reference/Lexical_grammar#Automatic_semicolon_insertion">automatic semicolon insertion (ASI)</a>)의 영향을 받습니다. 그러나 이 경우에는 직접 세미 콜론을 써주어야 합니다. 그래야 JavaScript가 올바르게 해석 될 수 있기 때문입니다.</p>
+
+<p>그러나, 가끔, 이 오류는 또 다른 오류의 결과로도 나타날 수도 있습니다. 문자열을 escape 문자로 적절히 처리해 주지 않았을 때, 또는 <code>var</code> 키워드를 잘 못 사용했을 때와 같은 경우 입니다. 또한 어딘가에 너무 많은 괄호 기호를 사용했을 것입니다. 이 오류가 발생했을 때에는 문법을 신중히 검토해야 합니다. </p>
+
+<h2 id="예제">예제</h2>
+
+<h3 id="Escape_처리되지_않은_문자열">Escape 처리되지 않은 문자열</h3>
+
+<p>이 오류는 문자열을 escape 처리 하지 않았을 때, JavaScript 엔진이 문자열 끝을 미리 예측하여 발생합니다. 예를 들자면 아래와 같습니다. :</p>
+
+<pre class="brush: js example-bad">var foo = 'Tom's bar';
+// SyntaxError: missing ; before statement</pre>
+
+<p>문자열을 묶어줄 때 쌍 따옴표를 사용하거나, 역슬래시를 이용해서 홑따옴표를 사용 할 수 있습니다. :</p>
+
+<pre class="brush: js example-good">var foo = "Tom's bar";
+var foo = 'Tom\'s bar';
+</pre>
+
+<h3 id="var와_함께_선언하는_것">var와 함께 선언하는 것</h3>
+
+<p>이미 <code>var</code> 선언된 object나 array의 요소를 새로 선언 할 수 없습니다.</p>
+
+<pre class="brush: js example-bad">var obj = {};
+var obj.foo = 'hi'; // SyntaxError missing ; before statement
+
+var array = [];
+var array[0] = 'there'; // SyntaxError missing ; before statement
+</pre>
+
+<p>대신에, <code>var</code>  키워드를 생략하고 정의합니다. :</p>
+
+<pre class="brush: js example-good">var obj = {};
+obj.foo = 'hi';
+
+var array = [];
+array[0] = 'there';
+</pre>
+
+<h2 id="참조_문서">참조 문서</h2>
+
+<ul>
+ <li><a href="/en-US/docs/Web/JavaScript/Reference/Lexical_grammar#Automatic_semicolon_insertion">Automatic semicolon insertion (ASI)</a></li>
+ <li><a href="/en-US/docs/Web/JavaScript/Reference/Statements">JavaScript statements</a></li>
+</ul>
diff --git a/files/ko/web/javascript/reference/errors/more_arguments_needed/index.html b/files/ko/web/javascript/reference/errors/more_arguments_needed/index.html
new file mode 100644
index 0000000000..41137d2f63
--- /dev/null
+++ b/files/ko/web/javascript/reference/errors/more_arguments_needed/index.html
@@ -0,0 +1,45 @@
+---
+title: 'TypeError: More arguments needed'
+slug: Web/JavaScript/Reference/Errors/More_arguments_needed
+translation_of: Web/JavaScript/Reference/Errors/More_arguments_needed
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<h2 id="메시지">메시지</h2>
+
+<pre class="syntaxbox">TypeError: argument is not an Object and is not null (Edge)
+TypeError: Object.create requires at least 1 argument, but only 0 were passed
+TypeError: Object.setPrototypeOf requires at least 2 arguments, but only 0 were passed
+TypeError: Object.defineProperties requires at least 1 argument, but only 0 were passed
+</pre>
+
+<h2 id="에러_타입">에러 타입</h2>
+
+<p>{{jsxref("TypeError")}}.</p>
+
+<h2 id="무엇이_잘_못_되었을까">무엇이 잘 못 되었을까?</h2>
+
+<p>함수 호출 시 에러가 있습니다. 더 많은 인수가 주어져야 합니다.</p>
+
+<h2 id="예제">예제</h2>
+
+<p>{{jsxref("Object.create()")}} 메서드는 적어도 1개의 인자가 필요하며, {{jsxref("Object.setPrototypeOf()")}} 메서드는 적어도 2개의 인자가 필요합니다.:</p>
+
+<pre class="brush: js example-bad">var obj = Object.create();
+// TypeError: Object.create requires at least 1 argument, but only 0 were passed
+
+var obj = Object.setPrototypeOf({});
+// TypeError: Object.setPrototypeOf requires at least 2 arguments, but only 1 were passed
+</pre>
+
+<p>예를 들면, 이렇게 프로토 타입으로  {{jsxref("null")}}를 세팅해서 고칠 수 있습니다.:</p>
+
+<pre class="brush: js example-good">var obj = Object.create(null);
+
+var obj = Object.setPrototypeOf({}, null);</pre>
+
+<h2 id="참조">참조</h2>
+
+<ul>
+ <li><a href="/en-US/docs/Web/JavaScript/Guide/Functions">Functions</a></li>
+</ul>
diff --git a/files/ko/web/javascript/reference/errors/negative_repetition_count/index.html b/files/ko/web/javascript/reference/errors/negative_repetition_count/index.html
new file mode 100644
index 0000000000..b2437c9ad8
--- /dev/null
+++ b/files/ko/web/javascript/reference/errors/negative_repetition_count/index.html
@@ -0,0 +1,40 @@
+---
+title: 'RangeError: repeat count must be non-negative'
+slug: Web/JavaScript/Reference/Errors/Negative_repetition_count
+translation_of: Web/JavaScript/Reference/Errors/Negative_repetition_count
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<h2 id="메시지">메시지</h2>
+
+<pre class="syntaxbox">RangeError: repeat count must be non-negative (Firefox)
+RangeError: Invalid count value (Chrome)
+</pre>
+
+<h2 id="에러_형식">에러 형식</h2>
+
+<p>{{jsxref("RangeError")}}</p>
+
+<h2 id="무엇이_잘못되었을까">무엇이 잘못되었을까?</h2>
+
+<p>{{jsxref("String.prototype.repeat()")}} 메소드가 사용되었습니다. 이 메소드는 문자열이 반복되는 수를 예측하는 카운트 파라메터를 가지고 있었습니다. 이 파라메터는 0보다 크고, 양의 {{jsxref("Infinity")}} 보다는 작으며, 음수는 될수 없습니다. 이 범위는 이렇게 표현 될 수 있습니다. : [0, +∞)</p>
+
+<h2 id="예">예</h2>
+
+<h3 id="허용되지_않는_경우">허용되지 않는 경우</h3>
+
+<pre class="brush: js example-bad">'abc'.repeat(-1); // RangeError </pre>
+
+<h3 id="허용되는_경우">허용되는 경우</h3>
+
+<pre class="brush: js example-good">'abc'.repeat(0); // ''
+'abc'.repeat(1); // 'abc'
+'abc'.repeat(2); // 'abcabc'
+'abc'.repeat(3.5); // 'abcabcabc' (수는 정수로 변환될 것입니다.)
+</pre>
+
+<h2 id="참조">참조</h2>
+
+<ul>
+ <li>{{jsxref("String.prototype.repeat()")}}</li>
+</ul>
diff --git a/files/ko/web/javascript/reference/errors/no_variable_name/index.html b/files/ko/web/javascript/reference/errors/no_variable_name/index.html
new file mode 100644
index 0000000000..e9d6ec6ee7
--- /dev/null
+++ b/files/ko/web/javascript/reference/errors/no_variable_name/index.html
@@ -0,0 +1,79 @@
+---
+title: 'SyntaxError: missing variable name'
+slug: Web/JavaScript/Reference/Errors/No_variable_name
+translation_of: Web/JavaScript/Reference/Errors/No_variable_name
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<h2 id="메시지">메시지</h2>
+
+<pre class="syntaxbox">SyntaxError: missing variable name (Firefox)
+SyntaxError: Unexpected token = (Chrome)</pre>
+
+<h2 id="에러_타입">에러 타입</h2>
+
+<p>{{jsxref("SyntaxError")}}</p>
+
+<h2 id="무엇이_잘_못_되었을까">무엇이 잘 못 되었을까?</h2>
+
+<p>변수에 이름이 없습니다. 이것은 코드 내의 구문 에러 때문일 수도 있습니다. 어쩌면 콤마를 잘 못 된 곳에 찍었거나, 변수명을 지을 때 애를 먹었을 수도 있습니다. 그럴 수도 있죠! 작명은 너무 어려우니까요. </p>
+
+<h2 id="예제">예제</h2>
+
+<h3 id="이름을_잃은_변수">이름을 잃은 변수</h3>
+
+<pre class="brush: js example-bad">var = "foo";
+</pre>
+
+<p>좋은 이름을 떠올리기 어려웠을 거예요. 우리 모두 겪는 일이죠.</p>
+
+<pre class="brush: js example-good">var ohGodWhy = "foo";</pre>
+
+<h3 id="예약어는_변수명이_될_수_없어요">예약어는 변수명이 될 수 없어요</h3>
+
+<p>예약어로 지정된 이름들이 변수로 쓰여 있습니다. 이것들은 사용할 수 없어요. 미안합니다. :(</p>
+
+<pre class="brush: js example-bad">var debugger = "whoop";
+// SyntaxError: missing variable name
+</pre>
+
+<h3 id="여러_변수를_선언하기">여러 변수를 선언하기</h3>
+
+<p>여러 변수를 한 번에 선언할 때에는 콤마에 주의를 기울여야 합니다. 쓸 데없는 콤마를 더 찍지는 않았는지? 무심코 세미콜론 대신 콤마를 찍지는 않았는지? </p>
+
+<pre class="brush: js example-bad">var x, y = "foo",
+var x, = "foo"
+
+var first = document.getElementById('one'),
+var second = document.getElementById('two'),
+
+// SyntaxError: missing variable name
+</pre>
+
+<p>올바르게 수정한 버전:</p>
+
+<pre class="brush: js example-good">var x, y = "foo";
+var x = "foo";
+
+var first = document.getElementById('one');
+var second = document.getElementById('two');</pre>
+
+<h3 id="배열">배열</h3>
+
+<p>JavaScript 의 {{jsxref("Array")}} 리터럴은 대괄호로 감싸주어야 합니다. 이건 동작하지 않아요.</p>
+
+<pre class="brush: js example-bad">var arr = 1,2,3,4,5;
+// SyntaxError: missing variable name
+</pre>
+
+<p>이렇게 해야 맞습니다:</p>
+
+<pre class="brush: js example-good">var arr = [1,2,3,4,5];</pre>
+
+<h2 id="더_보기">더 보기</h2>
+
+<ul>
+ <li><a href="http://wiki.c2.com/?GoodVariableNames">Good variable names</a></li>
+ <li><code><a href="/en-US/docs/Web/JavaScript/Reference/Statements/var">var</a></code></li>
+ <li><a href="/en-US/docs/Web/JavaScript/Guide/Grammar_and_types#Declarations">Variable declarations in the JavaScript Guide</a></li>
+</ul>
diff --git a/files/ko/web/javascript/reference/errors/not_a_codepoint/index.html b/files/ko/web/javascript/reference/errors/not_a_codepoint/index.html
new file mode 100644
index 0000000000..782cea10f2
--- /dev/null
+++ b/files/ko/web/javascript/reference/errors/not_a_codepoint/index.html
@@ -0,0 +1,51 @@
+---
+title: 'RangeError: argument is not a valid code point'
+slug: Web/JavaScript/Reference/Errors/Not_a_codepoint
+translation_of: Web/JavaScript/Reference/Errors/Not_a_codepoint
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<h2 id="메시지">메시지</h2>
+
+<pre class="syntaxbox">RangeError: {0} is not a valid code point (Firefox)
+RangeError: Invalid code point {0} (Chrome)
+</pre>
+
+<h2 id="에러_형식">에러 형식</h2>
+
+<p>{{jsxref("RangeError")}}</p>
+
+<h2 id="무엇이_잘못되었을까">무엇이 잘못되었을까?</h2>
+
+<p>{{jsxref("String.fromCodePoint()")}} 메소드는 유효한 코드 포인트(<a href="https://en.wikipedia.org/wiki/Code_point">code point</a>)만을 받아들입니다.</p>
+
+<p><a href="https://en.wikipedia.org/wiki/Code_point">code point</a>는 유니코드의 코드 스페이스 값으로, <code>0</code>부터 <code>0x10FFFF</code>까지의 정수 범위입니다.</p>
+
+<p>{{jsxref("NaN")}}을 사용하는 값, 음수 (<code>-1</code>),  정수가 아닌 수(3.14), 또는 <code>0x10FFFF</code> (<code>1114111</code>) 보다 큰 값은 이 함수에 적용될 수 없습니다.</p>
+
+<h2 id="예">예</h2>
+
+<h3 id="유효하지_않은_경우">유효하지 않은 경우</h3>
+
+<pre class="brush: js example-bad">String.fromCodePoint('_'); // RangeError
+String.fromCodePoint(Infinity); // RangeError
+String.fromCodePoint(-1); // RangeError
+String.fromCodePoint(3.14); // RangeError
+String.fromCodePoint(3e-2); // RangeError
+String.fromCodePoint(NaN); // RangeError</pre>
+
+<h3 id="유효한_경우">유효한 경우</h3>
+
+<pre class="brush: js example-good">String.fromCodePoint(42); // "*"
+String.fromCodePoint(65, 90); // "AZ"
+String.fromCodePoint(0x404); // "\u0404"
+String.fromCodePoint(0x2F804); // "\uD87E\uDC04"
+String.fromCodePoint(194564); // "\uD87E\uDC04"
+String.fromCodePoint(0x1D306, 0x61, 0x1D307) // "\uD834\uDF06a\uD834\uDF07"
+</pre>
+
+<h2 id="참조">참조</h2>
+
+<ul>
+ <li>{{jsxref("String.fromCodePoint()")}}</li>
+</ul>
diff --git a/files/ko/web/javascript/reference/errors/not_a_constructor/index.html b/files/ko/web/javascript/reference/errors/not_a_constructor/index.html
new file mode 100644
index 0000000000..80bc235779
--- /dev/null
+++ b/files/ko/web/javascript/reference/errors/not_a_constructor/index.html
@@ -0,0 +1,91 @@
+---
+title: 'TypeError: "x" is not a constructor'
+slug: Web/JavaScript/Reference/Errors/Not_a_constructor
+translation_of: Web/JavaScript/Reference/Errors/Not_a_constructor
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<h2 id="메세지">메세지</h2>
+
+<pre class="syntaxbox">TypeError: "x" is not a constructor
+
+TypeError: Math is not a constructor
+TypeError: JSON is not a constructor
+TypeError: Symbol is not a constructor
+TypeError: Reflect is not a constructor
+TypeError: Intl is not a constructor
+TypeError: SIMD is not a constructor
+TypeError: Atomics is not a constructor
+</pre>
+
+<h2 id="오류_유형">오류 유형</h2>
+
+<p>{{jsxref("TypeError")}}</p>
+
+<h2 id="뭐가_잘못된_거죠">뭐가 잘못된 거죠?</h2>
+
+<p>객체 혹은 변수를 생성자로 사용하려고 했습니다, 하지만 객체(혹은 변수)가 생성자가 아닙니다. 생성자가 무엇인지에 대한 자세한 정보는 {{Glossary("constructor")}} 혹은 <a href="/en-US/docs/Web/JavaScript/Reference/Operators/new"><code>new</code> operator</a> 를 참조하시기 바랍니다.</p>
+
+<p>{{jsxref("String")}} 혹은 {{jsxref("Array")}}와 같이 <code>new</code>,를 사용하여 생성할 수 있는 전역 객체들이 있습니다. 하지만 일부 전역 객체들은 그렇지 않고 속성과 메서드가 정적입니다. 다음의 자바스크립트 표준 내장 객체들은 생성자가 아닙니다: {{jsxref("Math")}}, {{jsxref("JSON")}}, {{jsxref("Symbol")}}, {{jsxref("Reflect")}}, {{jsxref("Intl")}}, {{jsxref("SIMD")}}, {{jsxref("Atomics")}}.</p>
+
+<p><a href="/en-US/docs/Web/JavaScript/Reference/Statements/function*">Generator functions</a> 또한 생성자로 사용될 수 없습니다.</p>
+
+<h2 id="예시">예시</h2>
+
+<h3 id="유효하지_않은_경우">유효하지 않은 경우</h3>
+
+<pre class="brush: js example-bad">var Car = 1;
+new Car();
+// TypeError: Car is not a constructor
+
+new Math();
+// TypeError: Math is not a constructor
+
+new Symbol();
+// TypeError: Symbol is not a constructor
+
+function* f() {};
+var obj = new f;
+// TypeError: f is not a constructor
+</pre>
+
+<h3 id="car_생성자">car 생성자</h3>
+
+<p>자동차(car) 객체를 만들고자 한다고 가정합니다. 이 객체의 타입을 <code>car</code>라 하고 make, model, and year 세 개의 프로퍼티를 갖습니다. 이를 위해 다음과 같은 함수를 작성할 것입니다:</p>
+
+<pre class="brush: js">function Car(make, model, year) {
+ this.make = make;
+ this.model = model;
+ this.year = year;
+}
+</pre>
+
+<p>이제 다음과 같이 <code>mycar</code> 라 불리는 객체를 생성할 수 있습니다:</p>
+
+<pre class="brush: js">var mycar = new Car('Eagle', 'Talon TSi', 1993);</pre>
+
+<h3 id="프라미스_이용">프라미스 이용</h3>
+
+<p>즉시 실행되는 프라미스를 반환하는 경우에는 <em>새로운 Promise(...)</em>를 생성할 필요가 없습니다.</p>
+
+<p>아래는 올바른 방법이 아닙니다(<a href="https://developer.mozilla.org/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise#Constructor">프라미스 생성자</a>가 제대로 호출되고 있지 않습니다). <code>TypeError: this is not a constructor</code> 예외를 던지게 됩니다:</p>
+
+<pre class="brush: js example-bad">return new Promise.resolve(true);
+</pre>
+
+<p>대신, <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/resolve">Promise.resolve()</a> 혹은 <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/reject">Promise.reject()</a> <a href="https://en.wikipedia.org/wiki/Method_(computer_programming)#Static_methods">정적 메서드</a>를 사용하십시오:</p>
+
+<pre class="brush: js">// This is legal, but unnecessarily long:
+return new Promise((resolve, reject) =&gt; { resolve(true); })
+
+// Instead, return the static method:
+return Promise.resolve(true);
+return Promise.reject(false);
+</pre>
+
+<h2 id="같이_보기">같이 보기</h2>
+
+<ul>
+ <li>{{Glossary("constructor")}}</li>
+ <li><a href="/en-US/docs/Web/JavaScript/Reference/Operators/new"><code>new</code> operator</a></li>
+</ul>
diff --git a/files/ko/web/javascript/reference/errors/not_defined/index.html b/files/ko/web/javascript/reference/errors/not_defined/index.html
new file mode 100644
index 0000000000..6b403dd848
--- /dev/null
+++ b/files/ko/web/javascript/reference/errors/not_defined/index.html
@@ -0,0 +1,66 @@
+---
+title: 'ReferenceError: "x" is not defined'
+slug: Web/JavaScript/Reference/Errors/Not_defined
+translation_of: Web/JavaScript/Reference/Errors/Not_defined
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<h2 id="메시지">메시지</h2>
+
+<pre class="syntaxbox">ReferenceError: "x" is not defined
+</pre>
+
+<h2 id="에러_타입">에러 타입</h2>
+
+<p>{{jsxref("ReferenceError")}}.</p>
+
+<h2 id="무엇이_잘못되었을까">무엇이 잘못되었을까?</h2>
+
+<p>존재하지 않는 변수를 참조하는 곳이 있습니다. 이 변수는 선언되어야 합니다. 또는, 현재 스크립트나 {{Glossary("scope")}} 에서 사용이 가능하도록 해야합니다.</p>
+
+<div class="note">
+<p><strong>Note:</strong> 라이브러리(예를 들면 jQuery와 같은)의 로딩은, 반드시 코드에서  "$"와 같은 라이브러리 변수에 접근하기 이전에 수행되어야 합니다. 라이브러리를 로딩하는 {{HTMLElement("script")}} 태그가 그 변수를 사용하는 코드보다 앞에 위치하도록 하세요.</p>
+</div>
+
+<h2 id="예">예</h2>
+
+<h3 id="선언되지_않은_변수">선언되지 않은 변수</h3>
+
+<pre class="brush: js example-bad">foo.substring(1); // ReferenceError: foo is not defined
+</pre>
+
+<p>"foo" 변수는 어디에도 선언되지 않았습니다. {{jsxref("String.prototype.substring()")}} 메소드가 작동하도록 하기 위해서는 문자열을 필요로 합니다.</p>
+
+<pre class="brush: js example-good">var foo = "bar";
+foo.substring(1); // "ar"</pre>
+
+<h3 id="잘못된_스코프">잘못된 스코프</h3>
+
+<p>변수는 현재의 실행 흐름 내에서 이용 가능해야합니다. 함수 내부에 정의된 변수는 다른 외부의 함수에서는 접근할 수 없습니다. 그 때문에, 변수는 함수의 스코프 내부에서만 정의 됩니다.</p>
+
+<pre class="brush: js example-bad">function numbers () {
+ var num1 = 2,
+ num2 = 3;
+ return num1 + num2;
+}
+
+console.log(num1); // ReferenceError: num1 is not defined</pre>
+
+<p>그러나, 함수는 모든 변수와 정의된 스코프 안에 정의된 함수에 접근할 수 있습니다. 따라서, 전역으로 정의된 함수는 전역에 정의된 모든 변수에도 접근할 수 있습니다.</p>
+
+<pre class="brush: js example-good">var num1 = 2,
+ num2 = 3;
+
+function numbers () {
+ return num1 + num2;
+}
+
+console.log(num1); // 2</pre>
+
+<h2 id="참조">참조</h2>
+
+<ul>
+ <li>{{Glossary("Scope")}}</li>
+ <li><a href="/en-US/docs/Web/JavaScript/Guide/Grammar_and_types#Declaring_variables">Declaring variables in the JavaScript Guide</a></li>
+ <li><a href="/en-US/docs/Web/JavaScript/Guide/Functions#Function_scope/en-US/docs/">Function scope in the JavaScript Guide</a></li>
+</ul>
diff --git a/files/ko/web/javascript/reference/errors/precision_range/index.html b/files/ko/web/javascript/reference/errors/precision_range/index.html
new file mode 100644
index 0000000000..43ab7392e4
--- /dev/null
+++ b/files/ko/web/javascript/reference/errors/precision_range/index.html
@@ -0,0 +1,92 @@
+---
+title: 'RangeError: precision is out of range'
+slug: Web/JavaScript/Reference/Errors/Precision_range
+translation_of: Web/JavaScript/Reference/Errors/Precision_range
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<h2 id="메시지">메시지</h2>
+
+<pre class="syntaxbox">RangeError: precision {0} out of range (Firefox)
+RangeError: toExponential() argument must be between 0 and 20 (Chrome)
+RangeError: toFixed() digits argument must be between 0 and 20 (Chrome)
+RangeError: toPrecision() argument must be between 1 and 21 (Chrome)
+</pre>
+
+<h2 id="에러_형식">에러 형식</h2>
+
+<p>{{jsxref("RangeError")}}</p>
+
+<h2 id="무엇이_잘못되었을까">무엇이 잘못되었을까?</h2>
+
+<p>아래의 메소드들 중 하나에서,  실행 인자(argument)가 정확도의 범위를 벗어났습니다. :</p>
+
+<ul>
+ <li>{{jsxref("Number.prototype.toExponential()")}}</li>
+ <li>{{jsxref("Number.prototype.toFixed()")}}</li>
+ <li>{{jsxref("Number.prototype.toPrecision()")}}</li>
+</ul>
+
+<p>이 메소드들에게 허용된 범위는 0부터 20 (또는 21)까지 입니다. 하지만, ECMAScript 스펙은 아래의 범위까지 확장하여 허용하고 있습니다.</p>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">Method</th>
+ <th scope="col">Firefox (SpiderMonkey)</th>
+ <th scope="col">Chrome, Opera (V8)</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>{{jsxref("Number.prototype.toExponential()")}}</td>
+ <td>0 부터 100</td>
+ <td>0 부터 20</td>
+ </tr>
+ <tr>
+ <td>{{jsxref("Number.prototype.toFixed()")}}</td>
+ <td>-20 부터 100</td>
+ <td>0 부터 20</td>
+ </tr>
+ <tr>
+ <td>{{jsxref("Number.prototype.toPrecision()")}}</td>
+ <td>1 부터 100</td>
+ <td>1 부터 21</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="예">예</h2>
+
+<h3 id="유효하지_않은_경우">유효하지 않은 경우</h3>
+
+<pre class="brush: js example-bad">77.1234.toExponential(-1); // RangeError
+77.1234.toExponential(101); // RangeError
+
+2.34.toFixed(-100); // RangeError
+2.34.toFixed(1001); // RangeError
+
+1234.5.toPrecision(-1); // RangeError
+1234.5.toPrecision(101); // RangeError
+</pre>
+
+<h3 id="유효한_경우">유효한 경우</h3>
+
+<pre class="brush: js example-good">77.1234.toExponential(4); // 7.7123e+1
+77.1234.toExponential(2); // 7.71e+1
+
+2.34.toFixed(1); // 2.3
+2.35.toFixed(1); // 2.4 (note that it rounds up in this case)
+
+5.123456.toPrecision(5); // 5.1235
+5.123456.toPrecision(2); // 5.1
+5.123456.toPrecision(1); // 5
+</pre>
+
+<h2 id="참조">참조</h2>
+
+<ul>
+ <li>{{jsxref("Number.prototype.toExponential()")}}</li>
+ <li>{{jsxref("Number.prototype.toFixed()")}}</li>
+ <li>{{jsxref("Number.prototype.toPrecision()")}}</li>
+</ul>
diff --git a/files/ko/web/javascript/reference/errors/property_access_denied/index.html b/files/ko/web/javascript/reference/errors/property_access_denied/index.html
new file mode 100644
index 0000000000..2468d0221a
--- /dev/null
+++ b/files/ko/web/javascript/reference/errors/property_access_denied/index.html
@@ -0,0 +1,42 @@
+---
+title: 'Error: Permission denied to access property "x"'
+slug: Web/JavaScript/Reference/Errors/Property_access_denied
+translation_of: Web/JavaScript/Reference/Errors/Property_access_denied
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<h2 id="메시지">메시지</h2>
+
+<pre class="syntaxbox">Error: Permission denied to access property "x"
+</pre>
+
+<h2 id="에러_형식">에러 형식</h2>
+
+<p>{{jsxref("Error")}}.</p>
+
+<h2 id="무엇이_잘못되었을까">무엇이 잘못되었을까?</h2>
+
+<p>접근이 허가되지 않은 객체에 접근하기 위한 시도가 있었습니다. 아마 동일 출처 정책(<a href="/en-US/docs/Web/Security/Same-origin_policy">same-origin policy</a>)을 침해하여 다른 도메인으로부터 로드된 {{HTMLElement("iframe")}} 엘리먼트에 대한 것이었을 겁니다.</p>
+
+<h2 id="예">예</h2>
+
+<pre class="brush: html">&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+  &lt;head&gt;
+    &lt;iframe id="myframe" src="http://www1.w3c-test.org/common/blank.html"&gt;&lt;/iframe&gt;
+    &lt;script&gt;
+      onload = function() {
+ console.log(frames[0].document);
+ // Error: Permission denied to access property "document"
+ }
+    &lt;/script&gt;
+  &lt;/head&gt;
+  &lt;body&gt;&lt;/body&gt;
+&lt;/html&gt;</pre>
+
+<h2 id="참조">참조</h2>
+
+<ul>
+ <li>{{HTMLElement("iframe")}}</li>
+ <li><a href="/en-US/docs/Web/Security/Same-origin_policy">Same-origin policy</a></li>
+</ul>
diff --git a/files/ko/web/javascript/reference/errors/read-only/index.html b/files/ko/web/javascript/reference/errors/read-only/index.html
new file mode 100644
index 0000000000..7260fd71f8
--- /dev/null
+++ b/files/ko/web/javascript/reference/errors/read-only/index.html
@@ -0,0 +1,77 @@
+---
+title: 'TypeError: "x" is read-only'
+slug: Web/JavaScript/Reference/Errors/Read-only
+translation_of: Web/JavaScript/Reference/Errors/Read-only
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<h2 id="메시지">메시지</h2>
+
+<pre class="syntaxbox">TypeError: "x" is read-only (Firefox)
+TypeError: 0 is read-only (Firefox)
+TypeError: Cannot assign to read only property 'x' of #&lt;Object&gt; (Chrome)
+TypeError: Cannot assign to read only property '0' of [object Array] (Chrome)
+</pre>
+
+<h2 id="에러_유형">에러 유형</h2>
+
+<p>{{jsxref("TypeError")}}</p>
+
+<h2 id="무엇이_잘못_된_걸까">무엇이 잘못 된 걸까?</h2>
+
+<p>전역변수 또는 객체 프로퍼티가 읽기 전용으로 할당된 경우입니다.(엄밀히 따지자면 <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty#Writable_attribute">쓰기가 불가능한 데이터 속성입니다.</a>)</p>
+
+<p>이 에러는 <a href="/en-US/docs/Web/JavaScript/Reference/Strict_mode">엄격모드</a>에서만 등장합니다.  엄격하지 않은 모드에서는 읽기전용 속성은 묵시적으로 무시됩니다.</p>
+
+<h2 id="예시">예시</h2>
+
+<h3 id="적절하지_않은_예">적절하지 않은 예</h3>
+
+<p>읽기 전용 속성은 아주 흔한 것은 아니지만, {{jsxref("Object.defineProperty()")}} 나 {{jsxref("Object.freeze()")}} 를 이용해 만들어 질 수 있습니다.</p>
+
+<pre class="brush: js example-bad">'use strict';
+var obj = Object.freeze({name: 'Elsa', score: 157});
+obj.score = 0; // TypeError
+
+'use strict';
+Object.defineProperty(this, 'LUNG_COUNT', {value: 2, writable: false});
+LUNG_COUNT = 3; // TypeError
+
+'use strict';
+var frozenArray = Object.freeze([0, 1, 2]);
+frozenArray[0]++; // TypeError
+</pre>
+
+<p>자바 스크립트에는 몇 가지 읽기 전용 속성이 내장되어 있습니다. 아마도 수학적 상수를 재정의하려고 한 것 같습니다.</p>
+
+<pre class="brush: js example-bad">'use strict';
+Math.PI = 4; // TypeError
+</pre>
+
+<p>이렇게는 불가능합니다.</p>
+
+<p>전역변수 <code>undefined</code>  또한 읽기전용으로, 사람들이 모두 좋아하지 않는 "undefined is not a function" 에러가 다음과 같은 경우 등장합니다:</p>
+
+<pre class="brush: js example-bad">'use strict';
+undefined = function() {}; // TypeError: "undefined" is read-only
+</pre>
+
+<h3 id="적절한_예">적절한 예</h3>
+
+<pre class="brush: js example-good">'use strict';
+var obj = Object.freeze({name: 'Score', points: 157});
+obj = {name: obj.name, points: 0}; // replacing it with a new object works
+
+'use strict';
+var LUNG_COUNT = 2; // a `var` works, because it's not read-only
+LUNG_COUNT = 3; // ok (anatomically unlikely, though)
+</pre>
+
+<h2 id="더보기">더보기</h2>
+
+<ul>
+ <li>{{jsxref("Object.defineProperty()")}}</li>
+ <li>{{jsxref("Object.freeze()")}}</li>
+ <li><a href="https://www.answers.com/Q/Which_animals_have_three_lungs">"Which animals have three lungs?" on answers.com</a></li>
+ <li><a href="https://aliens.wikia.com/wiki/Klingon">Klingons</a> (another answer to that query)</li>
+</ul>
diff --git a/files/ko/web/javascript/reference/errors/reduce_of_empty_array_with_no_initial_value/index.html b/files/ko/web/javascript/reference/errors/reduce_of_empty_array_with_no_initial_value/index.html
new file mode 100644
index 0000000000..53796ea87f
--- /dev/null
+++ b/files/ko/web/javascript/reference/errors/reduce_of_empty_array_with_no_initial_value/index.html
@@ -0,0 +1,83 @@
+---
+title: 'TypeError: Reduce of empty array with no initial value'
+slug: Web/JavaScript/Reference/Errors/Reduce_of_empty_array_with_no_initial_value
+translation_of: Web/JavaScript/Reference/Errors/Reduce_of_empty_array_with_no_initial_value
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<h2 id="Message">Message</h2>
+
+<pre class="syntaxbox">TypeError: 초기값이 없는 빈 배열에 대한 recude는 에러
+</pre>
+
+<h2 id="Error_type">Error type</h2>
+
+<p>{{jsxref("TypeError")}}</p>
+
+<h2 id="What_went_wrong">What went wrong?</h2>
+
+<p>자바스크립크에서 몇 몇의 reduce 함수들:</p>
+
+<ul>
+ <li>{{jsxref("Array.prototype.reduce()")}}, {{jsxref("Array.prototype.reduceRight()")}} and</li>
+ <li>{{jsxref("TypedArray.prototype.reduce()")}},  {{jsxref("TypedArray.prototype.reduceRight()")}}).</li>
+</ul>
+
+<p>이러한 함수들은 선택적으로 초기값(<code>initialValue</code>)을 사용합니다.(콜백(<code>callback)</code>의 첫번째 호출에 대한 첫번째 인수로 사용됩니다.) 그러나, 만약에 초기값을 설정하지 않는다면, {{jsxref("Array")}} or {{jsxref("TypedArray")}}에 대한 첫번째 엘리먼트를 초기값으로 사용 합니다. 이런 경우에 초기값이 없기 때문에 빈 배열이 제공될 경우 오류가 발생 합니다.</p>
+
+<h2 id="Examples">Examples</h2>
+
+<h3 id="Invalid_cases">Invalid cases</h3>
+
+<p>This problem appears frequently when combined with a filter ({{jsxref("Array.prototype.filter()")}}, {{jsxref("TypedArray.prototype.filter()")}}) which will remove all elements of the list. Thus leaving none to be used as the initial value.</p>
+
+<pre class="brush: js example-bad">var ints = [0, -1, -2, -3, -4, -5];
+ints.filter(x =&gt; x &gt; 0) // removes all elements
+ .reduce((x, y) =&gt; x + y) // no more elements to use for the initial value.</pre>
+
+<p>Similarly, the same issue can happen if there is a typo in a selector, or an unexpected number of elements in a list:</p>
+
+<pre class="brush: js example-bad">var names = document.getElementsByClassName("names");
+var name_list = Array.prototype.reduce.call(names, (acc, name) =&gt; acc + ", " + name);
+</pre>
+
+<h3 id="Valid_cases">Valid cases</h3>
+
+<p>These problems can be solved in two different ways.</p>
+
+<p>One way is to actually provide an <code>initialValue</code>  as the neutral element of the operator, such as 0 for the addition, 1 for a multiplication, or an empty string for a concatenation.</p>
+
+<pre class="brush: js example-good">var ints = [0, -1, -2, -3, -4, -5];
+ints.filter(x =&gt; x &gt; 0) // removes all elements
+ .reduce((x, y) =&gt; x + y, 0) // the initial value is the neutral element of the addition
+</pre>
+
+<p>Another way would be two to handle the empty case, either before calling <code>reduce</code>, or in the callback after adding an unexpected dummy initial value.</p>
+
+<pre class="brush: js example-good">var names = document.getElementsByClassName("names");
+
+var name_list1 = "";
+if (names1.length &gt;= 1)
+ name_list1 = Array.prototype.reduce.call(names, (acc, name) =&gt; acc + ", " + name);
+// name_list1 == "" when names is empty.
+
+var name_list2 = Array.prototype.reduce.call(names, (acc, name) =&gt; {
+ if (acc == "") // initial value
+ return name;
+ return acc + ", " + name;
+}, "");
+// name_list2 == "" when names is empty.
+</pre>
+
+<h2 id="See_also">See also</h2>
+
+<ul>
+ <li>{{jsxref("Array.prototype.reduce()")}}</li>
+ <li>{{jsxref("Array.prototype.reduceRight()")}}</li>
+ <li>{{jsxref("TypedArray.prototype.reduce()")}}</li>
+ <li>{{jsxref("TypedArray.prototype.reduceRight()")}}</li>
+ <li>{{jsxref("Array")}}</li>
+ <li>{{jsxref("TypedArray")}}</li>
+ <li>{{jsxref("Array.prototype.filter()")}}</li>
+ <li>{{jsxref("TypedArray.prototype.filter()")}}</li>
+</ul>
diff --git a/files/ko/web/javascript/reference/errors/reserved_identifier/index.html b/files/ko/web/javascript/reference/errors/reserved_identifier/index.html
new file mode 100644
index 0000000000..8a1932d9cc
--- /dev/null
+++ b/files/ko/web/javascript/reference/errors/reserved_identifier/index.html
@@ -0,0 +1,80 @@
+---
+title: 'SyntaxError: "x" is a reserved identifier'
+slug: Web/JavaScript/Reference/Errors/Reserved_identifier
+tags:
+ - 구문 에러
+ - 예약어
+ - 자바스크립트
+translation_of: Web/JavaScript/Reference/Errors/Reserved_identifier
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<h2 id="메세지">메세지</h2>
+
+<pre class="syntaxbox">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)</pre>
+
+<h2 id="에러_타입">에러 타입</h2>
+
+<p>{{jsxref("SyntaxError")}}</p>
+
+<h2 id="무엇이_잘못되었을까">무엇이 잘못되었을까?</h2>
+
+<p><a href="/en-US/docs/Web/JavaScript/Reference/Lexical_grammar#Keywords">예약어</a>가 식별자로 쓰인 경우 발생하는 에러입니다. 이 키워드는 엄격(Strict) 모드와 느슨한(Sloppy) 모드에서 모두 예약어로 취급됩니다.</p>
+
+<ul>
+ <li><code>enum</code></li>
+</ul>
+
+<p>다음은 엄격 모드의 코드에서만 예약어로 취급됩니다:</p>
+
+<ul class="threecolumns">
+ <li><code>implements</code></li>
+ <li><code>interface</code></li>
+ <li>{{jsxref("Statements/let", "let")}}</li>
+ <li><code>package</code></li>
+ <li><code>private</code></li>
+ <li><code>protected</code></li>
+ <li><code>public</code></li>
+ <li><code>static</code></li>
+</ul>
+
+<h2 id="예제">예제</h2>
+
+<h3 id="엄격_모드와_엄격하지_않은_모드에서의_예약어">엄격 모드와 엄격하지 않은 모드에서의 예약어</h3>
+
+<p><code>enum</code> 식별자는 일반적으로 예약되어 있습니다.</p>
+
+<pre class="brush: js example-bad">var enum = { RED: 0, GREEN: 1, BLUE: 2 };
+// SyntaxError: enum is a reserved identifier
+</pre>
+
+<p>엄격 모드의 코드에선 더 많은 식별자들이 예약되어 있습니다.</p>
+
+<pre class="brush: js example-bad">"use strict";
+var package = ["potatoes", "rice", "fries"];
+// SyntaxError: package is a reserved identifier
+</pre>
+
+<p>이 변수들의 이름을 변경해야 합니다.</p>
+
+<pre class="brush: js example-good">var colorEnum = { RED: 0, GREEN: 1, BLUE: 2 };
+var list = ["potatoes", "rice", "fries"];</pre>
+
+<h3 id="오래된_브라우저의_업데이트">오래된 브라우저의 업데이트</h3>
+
+<p>새로운 구문을 사용하기 위해서는 최근 버전의 브라우저로 업데이트 해야 합니다. 예를 들어, 오래된 브라우저를 사용하고 있다면 <code><a href="/en-US/docs/Web/JavaScript/Reference/Statements/let">let</a></code> 또는 <code><a href="/en-US/docs/Web/JavaScript/Reference/Statements/class">class</a></code> 구현할 수 없습니다.</p>
+
+<pre class="brush: js">"use strict";
+class DocArchiver {}
+
+// SyntaxError: class is a reserved identifier
+// (오래된 버전의 브라우저에서만 에러가 발생합니다. 예) Firefox 44 이하)
+</pre>
+
+<h2 id="같이_보기">같이 보기</h2>
+
+<ul>
+ <li><a href="http://wiki.c2.com/?GoodVariableNames">Good variable names</a></li>
+</ul>
diff --git a/files/ko/web/javascript/reference/errors/resulting_string_too_large/index.html b/files/ko/web/javascript/reference/errors/resulting_string_too_large/index.html
new file mode 100644
index 0000000000..20e28cbe2b
--- /dev/null
+++ b/files/ko/web/javascript/reference/errors/resulting_string_too_large/index.html
@@ -0,0 +1,46 @@
+---
+title: 'RangeError: repeat count must be less than infinity'
+slug: Web/JavaScript/Reference/Errors/Resulting_string_too_large
+translation_of: Web/JavaScript/Reference/Errors/Resulting_string_too_large
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<h2 id="메시지">메시지</h2>
+
+<pre class="syntaxbox">RangeError: repeat count must be less than infinity and not overflow maximum string size (Firefox)
+(repeat count는 infinity보다 작아야하며, 최대 문자열 크기를 넘길 수 없습니다.)
+
+RangeError: Invalid count value (Chrome)
+</pre>
+
+<h2 id="에러_형식">에러 형식</h2>
+
+<p>{{jsxref("RangeError")}}</p>
+
+<h2 id="무엇이_잘못되었을까">무엇이 잘못되었을까?</h2>
+
+<p> {{jsxref("String.prototype.repeat()")}} 메소드가 사용되었습니다. 이 메소드는 문자열을 반복하는 수를 예측하는 카운트 파라메터를 가지고 있었습니다. 그리고 이 파라메터는 0보다 커야하며, 양의 {{jsxref("Infinity")}} 보다 작아야 했으며, 음수는 허용되지 않았습니다. 이 값의 허용 범위는 이렇게 표현될 수 있습니다. : [0, +∞). </p>
+
+<p>결과인 문자열은 최대 문자열 크기보다 클 수 없지만, JavaScript 에서는 다를 수 있습니다. Firefox (SpiderMonkey) 에서의 최대 문자열 크기는 2<sup>28</sup> -1 (<code>0xFFFFFFF</code>)입니다.</p>
+
+<h2 id="예">예</h2>
+
+<h3 id="허용되지_않는_경우">허용되지 않는 경우</h3>
+
+<pre class="brush: js example-bad">'abc'.repeat(Infinity); // RangeError
+'a'.repeat(2**28); // RangeError
+</pre>
+
+<h3 id="허용되는_경우">허용되는 경우</h3>
+
+<pre class="brush: js example-good">'abc'.repeat(0); // ''
+'abc'.repeat(1); // 'abc'
+'abc'.repeat(2); // 'abcabc'
+'abc'.repeat(3.5); // 'abcabcabc' (숫자는 정수로 변환될 것입니다.)
+</pre>
+
+<h2 id="참조">참조</h2>
+
+<ul>
+ <li>{{jsxref("String.prototype.repeat()")}}</li>
+</ul>
diff --git a/files/ko/web/javascript/reference/errors/strict_non_simple_params/index.html b/files/ko/web/javascript/reference/errors/strict_non_simple_params/index.html
new file mode 100644
index 0000000000..8c07f4b46a
--- /dev/null
+++ b/files/ko/web/javascript/reference/errors/strict_non_simple_params/index.html
@@ -0,0 +1,107 @@
+---
+title: 'SyntaxError: "use strict" not allowed in function with non-simple parameters'
+slug: Web/JavaScript/Reference/Errors/Strict_Non_Simple_Params
+translation_of: Web/JavaScript/Reference/Errors/Strict_Non_Simple_Params
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<h2 id="Message">Message</h2>
+
+<pre class="syntaxbox">Firefox:
+SyntaxError: "use strict" not allowed in function with default parameter
+SyntaxError: "use strict" not allowed in function with rest parameter
+SyntaxError: "use strict" not allowed in function with destructuring parameter
+
+Chrome:
+SyntaxError: Illegal 'use strict' directive in function with non-simple parameter list
+</pre>
+
+<h2 id="Error_type">Error type</h2>
+
+<p>{{jsxref("SyntaxError")}}.</p>
+
+<h2 id="무엇이_잘못_되었을까요">무엇이 잘못 되었을까요?</h2>
+
+<p> <code>"use strict"</code> 지시문은 다음 매개변수 중 한 개가 있는 함수의 맨 위에 작성됩니다:</p>
+
+<ul>
+ <li>{{jsxref("Functions/Default_parameters", "Default parameters", "", 1)}}</li>
+ <li>{{jsxref("Functions/rest_parameters", "Rest parameters", "", 1)}}</li>
+ <li>{{jsxref("Operators/Destructuring_assignment", "Destructuring parameters", "", 1)}}</li>
+</ul>
+
+<p><code>"use strict"</code> 지시문은 ECMAScript 동작에 따라 이러한 함수의 맨 위에 허용되지 않습니다.</p>
+
+<h2 id="Examples">Examples</h2>
+
+<h3 id="기능_명세서">기능 명세서</h3>
+
+<p>다음은 함수 <code>sum</code> 에는 기본 매개 변수 <code>a=1</code> 및 <code>b=2</code>가 있는 경우입니다:</p>
+
+<pre class="brush: js example-bad">function sum(a = 1, b = 2) {
+ // SyntaxError: "use strict" not allowed in function with default parameter
+ 'use strict';
+ return a + b;
+}
+</pre>
+
+<p>함수가 <a href="/en-US/docs/Web/JavaScript/Reference/Strict_mode">strict mode</a> 모드에 있어야 하고 전체 스크립트 또는 포함된 함수가 <a href="/en-US/docs/Web/JavaScript/Reference/Strict_mode">strict mode</a>에 있어도 괜찮으면 함수 외부에서 <code>"use strict"</code> 지시문을 이동할 수 있습니다:</p>
+
+<pre class="brush: js example-good">'use strict';
+function sum(a = 1, b = 2) {
+ return a + b;
+}
+</pre>
+
+<h3 id="함수_표현식">함수 표현식</h3>
+
+<p>함수 표현식은 또 다른 해결방법을 사용할 수 있습니다:</p>
+
+<pre class="brush: js example-bad">var sum = function sum([a, b]) {
+ // SyntaxError: "use strict" not allowed in function with destructuring parameter
+ 'use strict';
+ return a + b;
+};
+</pre>
+
+<p>이것은 다음 표현식으로 변환 될 수 있습니다:</p>
+
+<pre class="brush: js example-good">var sum = (function() {
+ 'use strict';
+ return function sum([a, b]) {
+ return a + b;
+ };
+})();
+</pre>
+
+<h3 id="화살표_함수">화살표 함수</h3>
+
+<p>화살표 함수가 <code>this</code>에 접근해야 하는 경우에는,  둘러싼 함수로 화살표 함수를 사용할 수 있습니다:</p>
+
+<pre class="brush: js example-bad">var callback = (...args) =&gt; {
+ // SyntaxError: "use strict" not allowed in function with rest parameter
+ 'use strict';
+ return this.run(args);
+};
+</pre>
+
+<p>이것은 다음 표현식과 같이 변환될 수 있습니다:</p>
+
+<pre class="brush: js example-good">var callback = (() =&gt; {
+ 'use strict';
+ return (...args) =&gt; {
+ return this.run(args);
+ };
+})();
+</pre>
+
+<h2 id="See_also">See also</h2>
+
+<ul>
+ <li>{{jsxref("Strict_mode", "Strict mode", "", 1)}}</li>
+ <li>{{jsxref("Statements/function", "function statement", "", 1)}}</li>
+ <li>{{jsxref("Operators/function", "function expression", "", 1)}}</li>
+ <li>{{jsxref("Functions/Default_parameters", "Default parameters", "", 1)}}</li>
+ <li>{{jsxref("Functions/rest_parameters", "Rest parameters", "", 1)}}</li>
+ <li>{{jsxref("Operators/Destructuring_assignment", "Destructuring parameters", "", 1)}}</li>
+</ul>
diff --git a/files/ko/web/javascript/reference/errors/too_much_recursion/index.html b/files/ko/web/javascript/reference/errors/too_much_recursion/index.html
new file mode 100644
index 0000000000..90495a359b
--- /dev/null
+++ b/files/ko/web/javascript/reference/errors/too_much_recursion/index.html
@@ -0,0 +1,50 @@
+---
+title: 'InternalError: too much recursion'
+slug: Web/JavaScript/Reference/Errors/Too_much_recursion
+translation_of: Web/JavaScript/Reference/Errors/Too_much_recursion
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<h2 id="메시지">메시지</h2>
+
+<pre class="syntaxbox">InternalError: too much recursion
+</pre>
+
+<h2 id="에러_형식">에러 형식</h2>
+
+<p><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/InternalError" title='The InternalError object indicates an error that occurred internally in the JavaScript engine. For example: "InternalError: too much recursion".'><code>InternalError</code></a>.</p>
+
+<h2 id="무엇이_잘못되었을까">무엇이 잘못되었을까?</h2>
+
+<p>자신을 호출하는 함수를 재귀 함수라고 합니다. 어떤 면에서, 재귀는 반복과 유사합니다. 둘 다 같은 코드를 여러 번 실행하며, 조건(무한 반복 피하기, 더 정확히 여기서 말하는 무한 재귀)이 있습니다. 너무 많거나 무한 번의 재귀가 발생할 경우, JavaScript는 이 에러를 던질 것입니다.</p>
+
+<h2 id="예">예</h2>
+
+<p>이 재귀 함수는 exit 조건에 따라 10번을 실행합니다.</p>
+
+<pre class="brush: js">function loop(x) {
+ if (x &gt;= 10) // "x &gt;= 10" is the exit condition
+ return;
+ // do stuff
+ loop(x + 1); // the recursive call
+}
+loop(0);</pre>
+
+<p>이 조건에 대하여 너무 높은 값을 설정 하면 작동하지 않게 됩니다.</p>
+
+<pre class="brush: js example-bad">function loop(x) {
+ if (x &gt;= 1000000000000)
+ return;
+ // do stuff
+ loop(x + 1);
+}
+loop(0);
+
+// InternalError: too much recursion</pre>
+
+<h2 id="참조">참조</h2>
+
+<ul>
+ <li>{{Glossary("Recursion")}}</li>
+ <li><a href="/en-US/docs/Web/JavaScript/Guide/Functions#Recursion">Recursive functions</a></li>
+</ul>
diff --git a/files/ko/web/javascript/reference/errors/undeclared_var/index.html b/files/ko/web/javascript/reference/errors/undeclared_var/index.html
new file mode 100644
index 0000000000..688c92473d
--- /dev/null
+++ b/files/ko/web/javascript/reference/errors/undeclared_var/index.html
@@ -0,0 +1,62 @@
+---
+title: 'ReferenceError: assignment to undeclared variable "x"'
+slug: Web/JavaScript/Reference/Errors/Undeclared_var
+translation_of: Web/JavaScript/Reference/Errors/Undeclared_var
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<h2 id="메시지">메시지</h2>
+
+<pre class="syntaxbox">ReferenceError: assignment to undeclared variable "x" (Firefox)
+ReferenceError: "x" is not defined (Chrome)
+ReferenceError: Variable undefined in strict mode (Edge)
+</pre>
+
+<h2 id="에러_형식">에러 형식</h2>
+
+<p>엄격 모드(<a href="/en-US/docs/Web/JavaScript/Reference/Strict_mode">strict mode</a>)에서만 발생하는 {{jsxref("ReferenceError")}} 경고.</p>
+
+<h2 id="무엇이_잘못되었을까">무엇이 잘못되었을까?</h2>
+
+<p>선언되지 않은 변수로 값은 할당되었습니다. <code><a href="/en-US/docs/Web/JavaScript/Reference/Statements/var">var</a></code> 키워드가 없이 할당이 된 것입니다. 선언된 변수와 선언되지 않은 변수 사이에는 차이가 있는데, 이는 예상치 못한 결과를 가져오며, 때문에 JavaScript 엄격모드에서는 에러를 발생시키고 있습니다.</p>
+
+<p>선언된 변수와 선언되지 않은 변수에 대하여 기억해야 할 세 가지:</p>
+
+<ul>
+ <li>선언된 변수는 선언된 실행 맥락 내에서 요구됩니다. 선언되지 않은 변수는 항상 전역의 특성을 띱니다.</li>
+ <li>선언된 변수는 코드가 실행되기 전에 생성됩니다. 선언되지 않은 변수는 실행을 위해 할당이 일어날 때까지 존재하지 않습니다.</li>
+ <li>선언된 변수는 실행 맥락 내(함수나 전역적인)에서 변경 불가한 요소입니다. 선언되지 않은 변수는 변경이 가능합니다. (삭제 될 수도 있습니다.)</li>
+</ul>
+
+<p>더 많은 설명과 예제를 필요로 한다면 이 <code><a href="/en-US/docs/Web/JavaScript/Reference/Statements/var">var</a></code> 참조문서 페이지를 보세요.</p>
+
+<p>선언되지 않은 변수 할당에 대한 에러는 엄격 모드(<a href="/en-US/docs/Web/JavaScript/Reference/Strict_mode">strict mode code</a>)에서만 발생합니다. 비-엄격 코드에서는 조용히 묵인됩니다.</p>
+
+<h2 id="예">예</h2>
+
+<h3 id="허용되지_않는_경우">허용되지 않는 경우</h3>
+
+<p>이런 경우에는, 변수 "bar"는 선언되지 않은 변수가 됩니다.</p>
+
+<pre class="brush: js example-bad">function foo() {
+ "use strict";
+ bar = true;
+}
+foo(); // ReferenceError: assignment to undeclared variable bar
+</pre>
+
+<h3 id="허용되는_경우">허용되는 경우</h3>
+
+<p>"bar" 를 선언된 변수로 만들기 위해서, <code><a href="/en-US/docs/Web/JavaScript/Reference/Statements/var">var</a> </code>키워드를 변수명 앞에 붙여줍니다.</p>
+
+<pre class="brush: js example-good">function foo() {
+ "use strict";
+ var bar = true;
+}
+foo();</pre>
+
+<h2 id="참조">참조</h2>
+
+<ul>
+ <li><a href="/en-US/docs/Web/JavaScript/Reference/Strict_mode">Strict mode</a></li>
+</ul>
diff --git a/files/ko/web/javascript/reference/errors/undefined_prop/index.html b/files/ko/web/javascript/reference/errors/undefined_prop/index.html
new file mode 100644
index 0000000000..7919ca877d
--- /dev/null
+++ b/files/ko/web/javascript/reference/errors/undefined_prop/index.html
@@ -0,0 +1,58 @@
+---
+title: 'ReferenceError: reference to undefined property "x"'
+slug: Web/JavaScript/Reference/Errors/Undefined_prop
+translation_of: Web/JavaScript/Reference/Errors/Undefined_prop
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<h2 id="메시지">메시지</h2>
+
+<pre class="syntaxbox">ReferenceError: reference to undefined property "x" (Firefox)
+</pre>
+
+<h2 id="에러_형식">에러 형식</h2>
+
+<p>엄격 모드(<a href="/en-US/docs/Web/JavaScript/Reference/Strict_mode">strict mode</a>)에서만 발생하는 {{jsxref("ReferenceError")}} 경고.</p>
+
+<h2 id="무엇이_잘못되었을까">무엇이 잘못되었을까?</h2>
+
+<p>이 스크립트는 존재하지 않는 객체의 속성에 접근을 시도했습니다. 요소에 접근하는 방법에는 두 가지가 있습니다.; 더 자세히 알고 싶으시다면, 속성 접근자(<a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Property_Accessors">property accessors</a>) 참조 문서를 봐주세요. </p>
+
+<p>정의되지 않은 속성 참조에 대한 에러는 엄격 모드 코드(<a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode">strict mode code</a>)에서만 발생합니다. 비-엄격모드의 코드에서는 존재하지 않는 속성에 대한 접근은 조용히 무시됩니다.</p>
+
+<h2 id="예">예</h2>
+
+<h3 id="허용되지_않는_경우">허용되지 않는 경우</h3>
+
+<p>이 경우에는, 속성 <code>bar</code> 는 정의되지 않은 속성으로, <code>ReferenceError</code> 가 발생합니다.</p>
+
+<pre class="brush: js example-bad">"use strict";
+
+var foo = {};
+foo.bar; // ReferenceError: reference to undefined property "bar"
+</pre>
+
+<h3 id="허용되는_경우">허용되는 경우</h3>
+
+<p>에러를 피하기 위해서는, 접근을 시도하기 앞서, 객체에 <code>bar</code> 에 대한 정의를 추가하거나 <code>bar</code> 속성의 존재 여부를 확인해야 합니다.; 아래와 같이 {{jsxref("Object.prototype.hasOwnProperty()")}} method)를 사용하는 것이 하나의 방법이 될 수 있습니다.:</p>
+
+<pre class="brush: js example-good">"use strict";
+
+var foo = {};
+
+// bar 속성을 정의한다.
+
+foo.bar = "moon";
+console.log(foo.bar); // "moon"
+
+// bar에 접근하기 전에 존재 하는지 확인한다.
+
+if (foo.hasOwnProperty("bar") {
+ console.log(foo.bar);
+}</pre>
+
+<h2 id="참조">참조</h2>
+
+<ul>
+ <li><a href="/en-US/docs/Web/JavaScript/Reference/Strict_mode">Strict mode</a></li>
+</ul>
diff --git a/files/ko/web/javascript/reference/errors/unexpected_token/index.html b/files/ko/web/javascript/reference/errors/unexpected_token/index.html
new file mode 100644
index 0000000000..91704a6006
--- /dev/null
+++ b/files/ko/web/javascript/reference/errors/unexpected_token/index.html
@@ -0,0 +1,49 @@
+---
+title: 'SyntaxError: Unexpected token'
+slug: Web/JavaScript/Reference/Errors/Unexpected_token
+tags:
+ - 에러
+ - 자바스크립트
+translation_of: Web/JavaScript/Reference/Errors/Unexpected_token
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<h2 id="메시지">메시지</h2>
+
+<pre class="syntaxbox">SyntaxError: expected expression, got "x"
+SyntaxError: expected property name, got "x"
+SyntaxError: expected target, got "x"
+SyntaxError: expected rest argument name, got "x"
+SyntaxError: expected closing parenthesis, got "x"
+SyntaxError: expected '=&gt;' after argument list, got "x"
+</pre>
+
+<h2 id="에러_타입">에러 타입</h2>
+
+<p>{{jsxref("SyntaxError")}}</p>
+
+<h2 id="무엇이_잘못되었나요">무엇이 잘못되었나요?</h2>
+
+<p>특정 언어 구조를 예상했지만 무언가 다른 것이 있었습니다. 아마도, 간단한 오타일 것입니다.</p>
+
+<h2 id="예제">예제</h2>
+
+<h3 id="예상하지_못한_표현식">예상하지 못한 표현식</h3>
+
+<p>예를 들어, 함수를 호출할 때, 인수에서 마지막 부분에 콤마는 허용되지 않습니다. 자바스크립트는 계속해서 다른 인자가 있을 것이라고 기대하기 때문입니다.</p>
+
+<pre class="brush: js example-bad">Math.max(2, 42,);
+// SyntaxError: expected expression, got ')'
+</pre>
+
+<p>콤마를 생략하거나 다른 인수를 추가해 수정할 수 있습니다.</p>
+
+<pre class="brush: js example-good">Math.max(2, 42);
+Math.max(2, 42, 13+37);
+</pre>
+
+<h2 id="참조">참조</h2>
+
+<ul>
+ <li>{{jsxref("Math.max()")}}</li>
+</ul>
diff --git a/files/ko/web/javascript/reference/errors/unexpected_type/index.html b/files/ko/web/javascript/reference/errors/unexpected_type/index.html
new file mode 100644
index 0000000000..527411ab9a
--- /dev/null
+++ b/files/ko/web/javascript/reference/errors/unexpected_type/index.html
@@ -0,0 +1,67 @@
+---
+title: 'TypeError: "x" is (not) "y"'
+slug: Web/JavaScript/Reference/Errors/Unexpected_type
+tags:
+ - Errors
+ - JavaScript
+ - TypeError
+translation_of: Web/JavaScript/Reference/Errors/Unexpected_type
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<h2 id="Message">Message</h2>
+
+<pre class="syntaxbox">TypeError: "x" is (not) "y"
+
+Examples:
+TypeError: "x" is undefined
+TypeError: "x" is null
+TypeError: "undefined" is not an object
+TypeError: "x" is not an object or null
+TypeError: "x" is not a symbol
+</pre>
+
+<h2 id="Error_type">Error type</h2>
+
+<p>{{jsxref("TypeError")}}.</p>
+
+<h2 id="What_went_wrong">What went wrong?</h2>
+
+<p>그것은 정확하지 않은 형태이다. 그것은 가끔{{jsxref("undefined")}} 나 {{jsxref("null")}} 값을 발생한다.</p>
+
+<p>또한, {{jsxref("Object.create()")}} 또는 {{jsxref("Symbol.keyFor()")}}와 같은 메서드는 반드시 제공되어야하는 특별한 형태를 요구한다.</p>
+
+<h2 id="Examples">Examples</h2>
+
+<h3 id="Invalid_cases">Invalid cases</h3>
+
+<pre class="brush: js example-bad">// undefined and null cases on which the substring method won't work
+var foo = undefined;
+foo.substring(1); // TypeError: foo is undefined
+
+var foo = null;
+foo.substring(1); // TypeError: foo is null
+
+
+// Certain methods might require a specific type
+var foo = {}
+Symbol.keyFor(foo); // TypeError: foo is not a symbol
+
+var foo = 'bar'
+Object.create(foo); // TypeError: "foo" is not an object or null
+</pre>
+
+<h3 id="Fixing_the_issue">Fixing the issue</h3>
+
+<p>undefined 나 null 값을 가진 null 포인터를 고치기 위해서 아래 예제와 같이 <a href="/en-US/docs/Web/JavaScript/Reference/Operators/typeof">typeof</a> 연산자를 사용할 수 있다.</p>
+
+<pre class="brush: js">if (typeof foo !== 'undefined') {
+ // Now we know that foo is defined, we are good to go.
+}</pre>
+
+<h2 id="See_also">See also</h2>
+
+<ul>
+ <li>{{jsxref("undefined")}}</li>
+ <li>{{jsxref("null")}}</li>
+</ul>
diff --git a/files/ko/web/javascript/reference/errors/unnamed_function_statement/index.html b/files/ko/web/javascript/reference/errors/unnamed_function_statement/index.html
new file mode 100644
index 0000000000..b7afe67563
--- /dev/null
+++ b/files/ko/web/javascript/reference/errors/unnamed_function_statement/index.html
@@ -0,0 +1,118 @@
+---
+title: 'SyntaxError: function statement requires a name'
+slug: Web/JavaScript/Reference/Errors/Unnamed_function_statement
+tags:
+ - IIEF
+ - 객체 메소드
+ - 구문 에러
+ - 자바스크립트
+ - 콜백 함수
+ - 함수 이름
+translation_of: Web/JavaScript/Reference/Errors/Unnamed_function_statement
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<h2 id="메세지">메세지</h2>
+
+<pre class="syntaxbox">Syntax Error: Expected identifier (Edge)
+SyntaxError: function statement requires a name [Firefox]
+SyntaxError: Unexpected token ( [Chrome]
+</pre>
+
+<h2 id="에러_타입">에러 타입</h2>
+
+<p>{{jsxref("SyntaxError")}}</p>
+
+<h2 id="무엇이_잘못되었을까">무엇이 잘못되었을까?</h2>
+
+<p><a href="https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Statements/function">함수 구문</a>(Function statement)은 이름이 필수입니다. 함수가 정의된 방법에 따라 함수의 이름을 짓거나 함수 표현식(Function expression) {{Glossary("IIFE")}}으로 작성하거나, 함수가 맥락에 맞게 제대로 작성되었는지 확인해야 합니다.</p>
+
+<h2 id="예제">예제</h2>
+
+<h3 id="구문_vs_표현식">구문 vs 표현식</h3>
+
+<p><a href="https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Statements/function">함수 구문</a>(또는 함수 선언)은 이름이 필요하므로 아래 예제는 동작하지 않습니다:</p>
+
+<pre class="brush: js example-bad">function () {
+ return 'Hello world';
+}
+// SyntaxError: function statement requires a name
+</pre>
+
+<p>대신 <a href="https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/function">함수 표현식</a>을 사용할 수 있습니다:</p>
+
+<pre class="brush: js example-good">var greet = function() {
+ return 'Hello world';
+};</pre>
+
+<p>또는, 선언하자마자 바로 실행되는 <a href="https://en.wikipedia.org/wiki/Immediately-invoked_function_expression">IIFE</a> (Immediately Invoked Function Expression)를 사용할 수 있습니다. 이 경우 몇 개의 괄호가 더 필요합니다:</p>
+
+<pre class="brush: js example-good">(function () {
+
+})();</pre>
+
+<h3 id="레이블을_붙인_함수">레이블을 붙인 함수</h3>
+
+<p>만약 함수 <a href="https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Statements/label">레이블</a>을 사용하는 경우 <code>function</code> 키워드 뒤에 함수 이름이 필요하므로 아래 예제는 동작하지 않습니다:</p>
+
+<pre class="brush: js example-bad">function Greeter() {
+ german: function () {
+ return "Moin";
+ }
+}
+// SyntaxError: function statement requires a name
+</pre>
+
+<p>아래 예제는 동작합니다:</p>
+
+<pre class="brush: js example-good">function Greeter() {
+ german: function g() {
+ return "Moin";
+ }
+}</pre>
+
+<h3 id="객체_메소드">객체 메소드</h3>
+
+<p>만약 객체 메소드를 만드는 경우 먼저 객체를 만들어야 합니다. 객체 메소드의 경우 아래 예제와 같이 <code>function</code> 키워드 뒤에 이름이 없어도 정상적으로 동작합니다.</p>
+
+<pre class="brush: js example-good">var greeter = {
+ german: function () {
+ return "Moin";
+ }
+};</pre>
+
+<h3 id="콜백_구문">콜백 구문</h3>
+
+<p>콜백을 사용하는 경우 구문을 확인해야 합니다. 괄호와 쉼표는 구문을 어렵게 만듭니다.</p>
+
+<pre class="brush: js example-bad">promise.then(
+ function() {
+ console.log("success");
+ });
+ function() {
+ console.log("error");
+}
+// SyntaxError: function statement requires a name
+</pre>
+
+<p>올바르게 변경하면:</p>
+
+<pre class="brush: json example-good">promise.then(
+ function() {
+ console.log("success");
+ },
+ function() {
+ console.log("error");
+ }
+);
+</pre>
+
+<h2 id="같이_보기">같이 보기</h2>
+
+<ul>
+ <li><a href="https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/%ED%95%A8%EC%88%98">함수</a></li>
+ <li><a href="https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Statements/function">함수 구문</a></li>
+ <li><a href="https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/function">함수 표현식</a></li>
+ <li><a href="https://en.wikipedia.org/wiki/Immediately-invoked_function_expression">IIFE</a></li>
+ <li><a href="https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Statements/label">레이블</a></li>
+</ul>