diff options
12 files changed, 216 insertions, 159 deletions
diff --git a/files/ja/web/javascript/reference/errors/identifier_after_number/index.html b/files/ja/web/javascript/reference/errors/identifier_after_number/index.html index 1903ac1fda..3a0b8fe08b 100644 --- a/files/ja/web/javascript/reference/errors/identifier_after_number/index.html +++ b/files/ja/web/javascript/reference/errors/identifier_after_number/index.html @@ -10,9 +10,12 @@ translation_of: Web/JavaScript/Reference/Errors/Identifier_after_number --- <div>{{JSSidebar("Errors")}}</div> -<h2 id="メッセージ">メッセージ</h2> +<p>JavaScript の例外 "identifier starts immediately after numeric literal" は、識別子が数字で始まっているときに発生します。識別子の先頭は英字、アンダースコア (_)、ドル記号 ($) しか使うことができません。</p> -<pre class="syntaxbox">SyntaxError: identifier starts immediately after numeric literal (Firefox) +<h2 id="Message">エラーメッセージ</h2> + +<pre class="brush: js">SyntaxError: Unexpected identifier after numeric literal (Edge) +SyntaxError: identifier starts immediately after numeric literal (Firefox) SyntaxError: Unexpected number (Chrome) </pre> @@ -22,21 +25,24 @@ SyntaxError: Unexpected number (Chrome) <h2 id="何がうまくいかなかったのか?">何がうまくいかなかったのか?</h2> -<p>{{Glossary("Identifier", "identifiers")}} と呼ばれる変数名は特定のルールに従う必要があり、それに反しています!</p> +<p>変数の名前、いわゆる<a href="/ja/docs/Glossary/Identifier">識別子</a>は特定のルールに従う必要があり、それに反しています。</p> -<p>JavaScript の識別子は文字かアンダースコア (_)、ドル記号 ($) で始まる必要があります。数値からは始められません! 2 文字目以降でのみ、数値 (0-9) を使用できます。</p> +<p>JavaScript の識別子は文字かアンダースコア (_)、ドル記号 ($) で始まる必要があります。数値からは始められません。 2 文字目以降でのみ、数値 (0-9) を使用することができます。</p> <h2 id="例">例</h2> -<h3 id="数値文字から始まる変数名">数値文字から始まる変数名</h3> +<h3 id="Variable_names_starting_with_numeric_literals">数字から始まる変数名</h3> -<p>JavaScript は変数名を数値から始めることはできません。次は失敗です:</p> +<p>JavaScript は変数名を数字から始めることはできません。次の例は失敗します。</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> @@ -49,5 +55,5 @@ var foo = life1; <ul> <li><a href="/ja/docs/Web/JavaScript/Reference/Lexical_grammar">字句文法</a></li> - <li><a href="/ja/docs/Web/JavaScript/Guide">JavaScript ガイド</a>の<a href="/ja/docs/Web/JavaScript/Guide/Grammar_and_types#Variables">変数</a></li> + <li><a href="/ja/docs/Web/JavaScript/Guide">JavaScript ガイド</a>の<a href="/ja/docs/Web/JavaScript/Guide/Grammar_and_types#variables">変数</a></li> </ul> diff --git a/files/ja/web/javascript/reference/errors/illegal_character/index.html b/files/ja/web/javascript/reference/errors/illegal_character/index.html index 7f3ed44b20..4a679a996f 100644 --- a/files/ja/web/javascript/reference/errors/illegal_character/index.html +++ b/files/ja/web/javascript/reference/errors/illegal_character/index.html @@ -2,17 +2,20 @@ title: 'SyntaxError: illegal character' slug: Web/JavaScript/Reference/Errors/Illegal_character tags: - - Error - - Errors - - JavaScript - - SyntaxError +- Error +- Errors +- JavaScript +- SyntaxError translation_of: Web/JavaScript/Reference/Errors/Illegal_character --- -<div>{{jsSidebar("Errors")}}</div> +<p>{{jsSidebar("Errors")}}</p> + +<p>JavaScript の例外 "illegal character" は、コード内のこの位置に属していない、無効または予期しないトークンがあった場合に発生します。</p> <h2 id="メッセージ">メッセージ</h2> -<pre class="syntaxbox">SyntaxError: illegal character (Firefox) +<pre class="brush: js">SyntaxError: Invalid character (Edge) +SyntaxError: illegal character (Firefox) SyntaxError: Invalid or unexpected token (Chrome) </pre> @@ -22,51 +25,56 @@ SyntaxError: Invalid or unexpected token (Chrome) <h2 id="何がうまくいかなかったのか?">何がうまくいかなかったのか?</h2> -<p>コードのこの位置に属していない無効なトークンまたは予期しないトークンがあります。シンタックスハイライトをサポートしているエディターを使用して、マイナス記号 (<code> - </code>) とダッシュ (<code> – </code>) や、クオート (<code> " </code>) と非標準のクオーテーション記号 (<code> “ </code>) のようなミスがないか、コードを注意深くチェックしてください。</p> +<p>コードのこの位置に属していない、無効なトークンまたは予期しないトークンがあります。構文強調機能のあるエディターを使用して、マイナス記号 (<code> - </code>) とダッシュ (<code> – </code>) や、単純な引用符 (<code> " </code>) と標準外の引用符 (<code> “ </code>) のようなミスがないか、コードを注意深くチェックしてください。</p> <h2 id="例">例</h2> -<h3 id="文字のミスマッチ">文字のミスマッチ</h3> +<h3 id="Mismatched_characters">合わない文字</h3> -<p>いくつかの文字は似たように見えますが、パーサーがコードを解釈できなくなります。</p> +<p>似たような文字でも、パーサーがコードの解釈に失敗するものがあります。有名な例としては、引用符、マイナス、セミコロンなどがあります (<a href="https://en.wikipedia.org/wiki/Question_mark#Greek_question_mark">ギリシャ文字の疑問符 (U+37e)</a> も同様です)。</p> -<pre class="brush: js example-bad">“This looks like a string”; -// SyntaxError: illegal character +<pre class="brush: js example-bad">“This looks like a string”; // SyntaxError: illegal character + // “ と ” は " ではありませんが、見た目が似ています -42 – 13; -// SyntaxError: illegal character +42 – 13; // SyntaxError: illegal character + // – は - ではありませんが、見た目が似ています + +var foo = 'bar'; // SyntaxError: illegal character + // <37e> は ; ではありませんが、見た目が似ています </pre> -<p>これは動作します:</p> +<p>次のものは動作します。</p> <pre class="brush: js example-good">"This is actually a string"; - 42 - 13; +var foo = 'bar'; </pre> -<h3 id="文字の付け忘れ">文字の付け忘れ</h3> +<p>エディターや IDE の中には、その旨を通知してくれたり、少なくとも若干異なる強調表示をしてくれるものもありますが、すべてではありません。自分のコードにこのようなことが起こり、問題の原因がわからない場合は、問題のある行を削除して再入力するのが最善の方法です。</p> + +<h3 id="Forgotten_characters">文字の入れ忘れ</h3> -<p>さまざまな個所で、文字を付け忘れやすいです。</p> +<p>あちこちで文字を入れ忘れることがあります。</p> <pre class="brush: js example-bad">var colors = ['#000', #333', '#666']; // SyntaxError: illegal character </pre> -<p><code><strong>'</strong>#333'</code> に付け忘れたクオートを追加します。</p> +<p><code>'#333'</code> に付け忘れている引用符を追加してください。</p> <pre class="brush: js example-good">var colors = ['#000', '#333', '#666'];</pre> -<h3 id="隠れた文字">隠れた文字</h3> +<h3 id="Hidden_characters">隠れた文字</h3> -<p>外部のソースをコピー & ペーストすると、不正な文字が含まれていることがあります。気を付けて!</p> +<p>外部のソースをコピー&ペーストすると、不正な文字が含まれていることがあります。気を付けて!</p> -<pre class="brush: js example-bad">var foo = 'bar'; +<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';<200b></pre> +<pre class="brush: js">var foo = 'bar';<200b></pre> <h2 id="関連項目">関連項目</h2> diff --git a/files/ja/web/javascript/reference/errors/in_operator_no_object/index.html b/files/ja/web/javascript/reference/errors/in_operator_no_object/index.html index 3bf515574d..08ef44d836 100644 --- a/files/ja/web/javascript/reference/errors/in_operator_no_object/index.html +++ b/files/ja/web/javascript/reference/errors/in_operator_no_object/index.html @@ -2,50 +2,50 @@ title: 'TypeError: cannot use ''in'' operator to search for ''x'' in ''y''' slug: Web/JavaScript/Reference/Errors/in_operator_no_object tags: - - Error - - Errors - - JavaScript - - TypeError +- Error +- Errors +- JavaScript +- TypeError translation_of: Web/JavaScript/Reference/Errors/in_operator_no_object --- <div>{{jsSidebar("Errors")}}</div> -<p>JavaScript の例外 "right-hand side of 'in' should be an object" は、 <a href="/en-US/docs/Web/JavaScript/Reference/Operators/in"><code>in</code> 演算子</a>が文字列、数値、その他のプリミティブ型の中を検索するために使用された場合に発生します。これは、あるプロパティがオブジェクト内にあることをチェックする用途でしか使用することができません。</p> +<p>JavaScript の例外 "right-hand side of 'in' should be an object" は、 <a href="/ja/docs/Web/JavaScript/Reference/Operators/in"><code>in</code> 演算子</a>が文字列、数値、その他のプリミティブ型の中を検索するために使用された場合に発生します。これは、あるプロパティがオブジェクト内にあることをチェックする用途でしか使用することができません。</p> -<h2 id="Message" name="Message">メッセージ</h2> +<h2 id="Message">エラーメッセージ</h2> -<pre class="syntaxbox notranslate">TypeError: Invalid operand to 'in' (Edge) +<pre class="brush: js">TypeError: Invalid operand to 'in' (Edge) TypeError: right-hand side of 'in' should be an object, got 'x' (Firefox) TypeError: cannot use 'in' operator to search for 'x' in 'y' (Firefox, Chrome) </pre> -<h2 id="Error_type" name="Error_type">エラー種別</h2> +<h2 id="Error_type">エラーの種類</h2> <p>{{jsxref("TypeError")}}</p> -<h2 id="What_went_wrong" name="What_went_wrong">原因</h2> +<h2 id="What_went_wrong">エラーの原因</h2> <p><a href="/ja/docs/Web/JavaScript/Reference/Operators/in"><code>in</code> 演算子</a>はあるプロパティがオブジェクト内にあることをチェックする用途でしか使用することができません。文字列、数値、その他のプリミティブ型の中を検索することはできません。</p> -<h2 id="Examples" name="Examples">例</h2> +<h2 id="Examples">例</h2> -<h3 id="Searching_in_strings" name="Searching_in_strings">文字列内の検索</h3> +<h3 id="Searching_in_strings">文字列内の検索</h3> <p>他のプログラミング言語 (Python など) とは異なり、 <a href="/ja/docs/Web/JavaScript/Reference/Operators/in"><code>in</code> 演算子</a>を使用して文字列の中を検索することはできません。</p> -<pre class="brush: js example-bad notranslate">"Hello" in "Hello World"; +<pre class="brush: js example-bad">"Hello" in "Hello World"; // TypeError: cannot use 'in' operator to search for 'Hello' in 'Hello World'</pre> <p>Instead you will need to use {{jsxref("String.prototype.indexOf()")}}, for example.</p> -<pre class="brush: js example-good notranslate">"Hello World".indexOf("Hello") !== -1; +<pre class="brush: js example-good">"Hello World".indexOf("Hello") !== -1; // true</pre> -<h3 id="The_operand_cant_be_null_or_undefined" name="The_operand_cant_be_null_or_undefined">オペランドを null や undefined にすることはできない</h3> +<h3 id="The_operand_cant_be_null_or_undefined">オペランドを null や undefined にすることはできない</h3> <p>調査対象のオブジェクトが実際に {{jsxref("null")}} や {{jsxref("undefined")}} になっていないことを確認してください。</p> -<pre class="brush: js example-bad notranslate">var foo = null; +<pre class="brush: js example-bad">var foo = null; "bar" in foo; // TypeError: cannot use 'in' operator to search for 'bar' in 'foo' (Chrome) // TypeError: right-hand side of 'in' should be an object, got null (Firefox) @@ -53,23 +53,23 @@ TypeError: cannot use 'in' operator to search for 'x' in 'y' (Firefox, Chrome) <p><code>in</code> 演算子は常にオブジェクトを期待します。</p> -<pre class="brush: js example-good notranslate">var foo = { baz: "bar" }; +<pre class="brush: js example-good">var foo = { baz: "bar" }; "bar" in foo; // false "PI" in Math; // true "pi" in Math; // false </pre> -<h3 id="Searching_in_arrays" name="Searching_in_arrays">配列の中の検索</h3> +<h3 id="Searching_in_arrays">配列の中の検索</h3> -<p><code>in</code> 演算子を使用して {{jsxref("Array")}} オブジェクトの中を検索するときは注意してください。 <code>in</code> 演算子は添字の数値をチェックするのであり、その位置の値をチェックするのではありません。</p> +<p><code>in</code> 演算子を使用して {{jsxref("Array")}} オブジェクトの中を検索するときは注意してください。 <code>in</code> 演算子は添字の数値をチェックするものであり、その位置の値をチェックするのではありません。</p> -<pre class="brush: js notranslate">var trees = ['redwood', 'bay', 'cedar', 'oak', 'maple']; +<pre class="brush: js">var trees = ['redwood', 'bay', 'cedar', 'oak', 'maple']; 3 in trees; // true "oak" in trees; // false</pre> -<h2 id="See_also" name="See_also">関連情報</h2> +<h2 id="See_also">関連情報</h2> <ul> - <li><a href="/jas/docs/Web/JavaScript/Reference/Operators/in"><code>in</code> 演算子</a></li> + <li><a href="/ja/docs/Web/JavaScript/Reference/Operators/in"><code>in</code> 演算子</a></li> </ul> diff --git a/files/ja/web/javascript/reference/errors/invalid_array_length/index.html b/files/ja/web/javascript/reference/errors/invalid_array_length/index.html index 4531daac7d..f1e016fe66 100644 --- a/files/ja/web/javascript/reference/errors/invalid_array_length/index.html +++ b/files/ja/web/javascript/reference/errors/invalid_array_length/index.html @@ -10,31 +10,37 @@ translation_of: Web/JavaScript/Reference/Errors/Invalid_array_length --- <div>{{jsSidebar("Errors")}}</div> -<p>JavaScript の例外 "Invalid array length" は、 {{jsxref("Array")}} または {{jsxref("ArrayBuffer")}} を長さが負の数か 2<sup>32</sup> 以上で生成しようとした場合、または {{jsxref("Array.length")}} プロパティに負の数か 2<sup>32</sup> 以上の値を設定しようとした場合に発生します。</p> +<p>JavaScript の例外 "Invalid array length" は、配列の長さが負の数か、プラットフォームで対応している最大値を超える値に設定しようとしたとき (すなわち、 {{jsxref("Array")}} または {{jsxref("ArrayBuffer")}} を生成しようとしたとき、または {{jsxref("Array.length")}} を設定しようとしたとき) に発生します。</p> + +<p>配列の長さに許されている最大値は、プラットフォームとブラウザーとそのバージョンに依存します。 {{jsxref("Array")}} については、最大長は 2GB-1 (2^32-1) です。 {{jsxref("ArrayBuffer")}} については、最大値は 32 ビットシステムで 2GB-1 (2^32-1) です。 Firefox バージョン 89 から、 {{jsxref("ArrayBuffer")}} の最大値は 64 ビットシステムでは 8GB (2^33) です。</p> + +<div class="notecard note"> + <p><strong>補足:</strong> <code>Array</code> と <code>ArrayBuffer</code> は別個のデータ構造です (一方の実装がもう一方には影響しません)。</p> +</div> <h2 id="Message">メッセージ</h2> -<pre class="brush: js">RangeError: Array length must be a finite positive integer (Edge) -RangeError: invalid array length (Firefox) -RangeError: Invalid array length (Chrome) -RangeError: Invalid array buffer length (Chrome) +<pre class="brush: js">RangeError: invalid array length (Firefox) +RangeError: Invalid array length (Chromium-based) +RangeError: Array buffer allocation failed (Chromium-based) </pre> -<h2 id="Error_type">エラー種別</h2> + +<h2 id="Error_type">エラーの種類</h2> <p>{{jsxref("RangeError")}}</p> -<h2 id="What_went_wrong">原因</h2> +<h2 id="What_went_wrong">エラーの原因</h2> <p>配列の長さが不正になるのは、以下のような場合です。</p> <ul> - <li>{{jsxref("Array")}} や {{jsxref("ArrayBuffer")}} を、負の数や 2<sup>32</sup> 以上の長さで生成しようとした。</li> - <li>{{jsxref("Array.length")}} プロパティに負の数や 2<sup>32</sup> 以上の値を設定しようとした。</li> + <li>{{jsxref("Array")}} や {{jsxref("ArrayBuffer")}} を、負の数の長さで生成しようとしたか、 {{jsxref("Array.length")}} プロパティに負の数を設定しようとした。</li> + <li>2GB-1 (2^32-1) よりも大きな {{jsxref("Array")}} を生成しようとしたか、 {{jsxref("Array.length")}} プロパティに設定しようとした。</li> + <li>32 ビットシステムで 2GB-1 (2^32-1)、 64 ビットシステムで 8GB (2^33) を超える {{jsxref("ArrayBuffer")}} を生成しようとした。</li> + <li>Firefox 89 以前: 2GB-1 (2^32-1) より大きな {{jsxref("ArrayBuffer")}} を生成しようとした。</li> </ul> -<p>なぜ <code>Array</code> と <code>ArrayBuffer</code> の length が制限されるのでしょうか? <code>Array</code> と <code>ArrayBuffer</code> の <code>length</code> プロパティは、符号なし 32 ビット整数で表されるため、値は 0 から 2<sup>32</sup>-1 の範囲の値しか保持できません。</p> - <p>コンストラクターを使用して <code>Array</code> を生成すると、最初の引数が <code>Array</code> の長さとして解釈されるので、代わりにリテラル表記を使った方が良いかもしれません。</p> <p>そうでない場合は、 length プロパティを設定する前、またはコンストラクターの引数として使用する前に、長さを制限しておくとよいでしょう。</p> @@ -45,7 +51,7 @@ RangeError: Invalid array buffer length (Chrome) <pre class="brush: js example-bad">new Array(Math.pow(2, 40)) new Array(-1) -new ArrayBuffer(Math.pow(2, 32)) +new ArrayBuffer(Math.pow(2, 32)) //32 ビットシステム new ArrayBuffer(-1) let a = []; @@ -60,6 +66,7 @@ b.length = b.length + 1; // length プロパティに 2^32 を設定 <pre class="brush: js example-good">[ Math.pow(2, 40) ] // [ 1099511627776 ] [ -1 ] // [ -1 ] new ArrayBuffer(Math.pow(2, 32) - 1) +new ArrayBuffer(Math.pow(2, 33)) // 64 ビットシステム、 Firefox 89 以降 new ArrayBuffer(0) let a = []; @@ -68,8 +75,8 @@ 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 >>> 0) +// 0xffffffff は 2^32 - 1 の 16 進表記です。 +// (-1 >>> 0) と書くこともできます。 </pre> <h2 id="See_also">関連情報</h2> diff --git a/files/ja/web/javascript/reference/errors/invalid_assignment_left-hand_side/index.html b/files/ja/web/javascript/reference/errors/invalid_assignment_left-hand_side/index.html index 903e159477..d6c4c38c20 100644 --- a/files/ja/web/javascript/reference/errors/invalid_assignment_left-hand_side/index.html +++ b/files/ja/web/javascript/reference/errors/invalid_assignment_left-hand_side/index.html @@ -2,6 +2,7 @@ title: 'ReferenceError: invalid assignment left-hand side' slug: Web/JavaScript/Reference/Errors/Invalid_assignment_left-hand_side tags: + - Error - Errors - JavaScript - ReferenceError diff --git a/files/ja/web/javascript/reference/errors/invalid_const_assignment/index.html b/files/ja/web/javascript/reference/errors/invalid_const_assignment/index.html index e446935a23..2ce876cb25 100644 --- a/files/ja/web/javascript/reference/errors/invalid_const_assignment/index.html +++ b/files/ja/web/javascript/reference/errors/invalid_const_assignment/index.html @@ -2,34 +2,36 @@ title: 'TypeError: invalid assignment to const "x"' slug: Web/JavaScript/Reference/Errors/Invalid_const_assignment tags: - - Error - - Errors - - JavaScript - - TypeError +- Error +- JavaScript +- TypeError translation_of: Web/JavaScript/Reference/Errors/Invalid_const_assignment --- <div>{{jsSidebar("Errors")}}</div> -<h2 id="メッセージ">メッセージ</h2> +<p>JavaScript の例外 "invalid assignment to const" は、定数を変更しようとしたときに発生します。 JavaScript の <code><a href="/ja/docs/Web/JavaScript/Reference/Statements/const">const</a></code> で宣言すると、再代入野菜宣言を行うことができません。</p> -<pre class="syntaxbox">TypeError: invalid assignment to const "x" (Firefox) +<h2 id="Message">エラーメッセージ</h2> + +<pre class="brush: js">TypeError: invalid assignment to const "x" (Firefox) TypeError: Assignment to constant variable. (Chrome) -TypeError: Redeclaration of const 'x' (IE/Edge) +TypeError: Assignment to const (Edge) +TypeError: Redeclaration of const 'x' (IE) </pre> <h2 id="エラータイプ">エラータイプ</h2> <p>{{jsxref("TypeError")}}</p> -<h2 id="何がうまくいかなかったのか?">何がうまくいかなかったのか??</h2> +<h2 id="What_went_wrong">エラーの原因</h2> <p>定数は、通常の実行中にプログラムによって変更できない値です。再代入も再宣言もできません。JavaScript では、定数を <code><a href="/ja/docs/Web/JavaScript/Reference/Statements/const">const</a></code> キーワードで宣言します。</p> <h2 id="例">例</h2> -<h3 id="無効な再宣言">無効な再宣言</h3> +<h3 id="Invalid_redeclaration">無効な再宣言</h3> -<p>同じブロックスコープで同じ定数名に値を代入すると、エラーがスローされます。</p> +<p>同じブロックスコープで同じ定数名に値を代入すると、エラーが発生します。</p> <pre class="brush: js example-bad">const COLUMNS = 80; @@ -37,20 +39,20 @@ TypeError: Redeclaration of const 'x' (IE/Edge) COLUMNS = 120; // TypeError: invalid assignment to const `COLUMNS'</pre> -<h3 id="エラーを修正">エラーを修正</h3> +<h3 id="Fixing_the_error">エラーの修正</h3> <p>エラーを修正するには、複数の選択肢があります。問題となっている定数で、達成しようとしていたことを確認してください。</p> -<h4 id="リネーム">リネーム</h4> +<h4 id="Rename">名前の変更</h4> -<p>ほかの定数を宣言するつもりだったならば、ほかの名前を選んで、リネームしてください。この定数名はすでにこのスコープで使用されています。</p> +<p>ほかの定数を宣言しようとしていたのであれば、ほかの名前を選んで名前を変更してください。この定数名は、すでにこのスコープで使用されています。</p> <pre class="brush: js example-good">const COLUMNS = 80; const WIDE_COLUMNS = 120;</pre> -<h4 id="const、let、var"><code>const</code>、<code>let</code>、<code>var</code>?</h4> +<h4 id="const_let_or_var"><code>const</code>、<code>let</code>、<code>var</code></h4> -<p>定数を宣言するつもりがなかったのなら、const を使用しないでください。ブロックスコープの変数なら、<code><a href="/ja/docs/Web/JavaScript/Reference/Statements/let">let</a></code> で、グローバルスコープの変数なら <code><a href="/ja/docs/Web/JavaScript/Reference/Statements/var">var</a></code> で宣言してください。</p> +<p>定数を宣言するつもりがなかったのであれば、 const を使用しないでください。ブロックスコープの変数であれば <code><a href="/ja/docs/Web/JavaScript/Reference/Statements/let">let</a></code> で、グローバルスコープの変数であれば <code><a href="/ja/docs/Web/JavaScript/Reference/Statements/var">var</a></code> で宣言してください。</p> <pre class="brush: js example-good">let columns = 80; @@ -59,9 +61,9 @@ const WIDE_COLUMNS = 120;</pre> let columns = 120; </pre> -<h4 id="スコープ">スコープ</h4> +<h4 id="Scoping">スコープ</h4> -<p>正しいスコープにあるか確認してください。たとえば、この定数はこのスコープにあるべきなのでしょうか?それとも関数にあるべきなのでしょうか?</p> +<p>正しいスコープにあるか確認してください。たとえば、この定数はこのスコープにあるべきなのでしょうか。それとも関数にあるべきなのでしょうか。</p> <pre class="brush: js example-good">const COLUMNS = 80; @@ -69,15 +71,15 @@ function setupBigScreenEnvironment() { const COLUMNS = 120; }</pre> -<h3 id="const_と不変性"><code>const</code> と不変性</h3> +<h3 id="const_and_immutability"><code>const</code> と不変性</h3> -<p><code>const</code> 宣言は、値への読み取り専用参照を作成します。それが保持している値が不変であることを意味するものでは<strong>なく</strong>、単に変数識別子を再割り当てできないだけです。たとえば、コンテンツがオブジェクトである場合、オブジェクト自体は依然として変更可能であることを意味します。 つまり、変数に格納されている値を変更することはできません:</p> +<p><code>const</code> 宣言は、値への読み取り専用の参照を作成します。それが保持している値が不変であることを意味するものでは<strong>なく</strong>、変数識別子に再代入できないだけです。たとえば、コンテンツがオブジェクトである場合、オブジェクト自体はまだ変更可能であることを意味します。 つまり、変数に格納されている値を変更することはできないということです。</p> <pre class="brush: js example-bad">const obj = {foo: 'bar'}; obj = {foo: 'baz'}; // TypeError: invalid assignment to const `obj' </pre> -<p>しかし、変数内のプロパティは変更できます:</p> +<p>しかし、変数内のプロパティは変更することができます。</p> <pre class="brush: js example-good">obj.foo = 'baz'; obj; // Object { foo: "baz" }</pre> @@ -85,7 +87,7 @@ obj; // Object { foo: "baz" }</pre> <h2 id="関連項目">関連項目</h2> <ul> - <li><code><a href="/ja/docs/Web/JavaScript/Reference/Statements/const">const</a></code></li> - <li><code><a href="/ja/docs/Web/JavaScript/Reference/Statements/let">let</a></code></li> - <li><code><a href="/ja/docs/Web/JavaScript/Reference/Statements/var">var</a></code></li> + <li><code><a href="/ja/docs/Web/JavaScript/Reference/Statements/const">const</a></code></li> + <li><code><a href="/ja/docs/Web/JavaScript/Reference/Statements/let">let</a></code></li> + <li><code><a href="/ja/docs/Web/JavaScript/Reference/Statements/var">var</a></code></li> </ul> diff --git a/files/ja/web/javascript/reference/errors/invalid_date/index.html b/files/ja/web/javascript/reference/errors/invalid_date/index.html index 65dc24c331..2693cb120b 100644 --- a/files/ja/web/javascript/reference/errors/invalid_date/index.html +++ b/files/ja/web/javascript/reference/errors/invalid_date/index.html @@ -24,7 +24,7 @@ RangeError: Provided date is not in valid range (Chrome) <p>{{jsxref("RangeError")}}</p> -<h2 id="What_went_wrong">原因</h2> +<h2 id="What_went_wrong">エラーの原因</h2> <p>無効な日付を示す文字列が {{jsxref("Date")}} または {{jsxref("Date.parse()")}} に渡されたことです。</p> diff --git a/files/ja/web/javascript/reference/errors/invalid_for-in_initializer/index.html b/files/ja/web/javascript/reference/errors/invalid_for-in_initializer/index.html index bb8948a49e..5b153dfc43 100644 --- a/files/ja/web/javascript/reference/errors/invalid_for-in_initializer/index.html +++ b/files/ja/web/javascript/reference/errors/invalid_for-in_initializer/index.html @@ -3,7 +3,6 @@ title: 'SyntaxError: for-in loop head declarations may not have initializers' slug: Web/JavaScript/Reference/Errors/Invalid_for-in_initializer tags: - Error - - Errors - JavaScript - Strict Mode - SyntaxError @@ -11,10 +10,12 @@ translation_of: Web/JavaScript/Reference/Errors/Invalid_for-in_initializer --- <div>{{jsSidebar("Errors")}}</div> -<h2 id="メッセージ">メッセージ</h2> +<p>JavaScript の <a href="/en-US/docs/Web/JavaScript/Reference/Strict_mode">strict モード</a>専用の例外である "for-in loop head declarations may not have initializers" は、 <a href="/en-US/docs/Web/JavaScript/Reference/Statements/for...in">for...in</a> の先頭に初期化構文が含まれていた場合、例えば |<code>for (var i = 0 in obj)</code>| のような場合に発生します。これは strict モードの for-in ループでは許可されていません。</p> -<pre class="syntaxbox">SyntaxError: for-in loop head declarations may not have initializers (Firefox) +<h2 id="Message">エラーメッセージ</h2> +<pre class="brush: js">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> @@ -24,11 +25,11 @@ SyntaxError: for-in loop variable declaration may not have an initializer. (Chro <h2 id="何がうまくいかなかったのか?">何がうまくいかなかったのか?</h2> -<p><a href="/ja/docs/Web/JavaScript/Reference/Statements/for...in">for...in</a> ループのヘッダーに初期化式が含まれています。つまり、変数を宣言し、値を代入しています |<code>for (var i = 0 in obj)</code>|。非 strict モードでは、このヘッダー宣言は暗黙裡に無視され、<code>|for (var i in obj)|</code> のように動作します。しかし、<a href="/ja/docs/Web/JavaScript/Reference/Strict_mode">strict モード</a>では <code>SyntaxError</code> がスローされます。</p> +<p><a href="/ja/docs/Web/JavaScript/Reference/Statements/for...in">for...in</a> ループの先頭に初期化式が含まれています。つまり、 |<code>for (var i = 0 in obj)</code>| のように変数を宣言して値を代入しています。 strict モードでない場合は、このヘッダー宣言は暗黙に無視され、<code>|for (var i in obj)|</code> のように動作します。しかし、<a href="/ja/docs/Web/JavaScript/Reference/Strict_mode">strict モード</a>では <code>SyntaxError</code> が発生します。</p> <h2 id="例">例</h2> -<p>この例は <code>SyntaxError</code> をスローします:</p> +<p>この例では <code>SyntaxError</code> が発生します。</p> <pre class="brush: js example-bad">"use strict"; @@ -41,9 +42,9 @@ for (var i = 0 in obj) { // SyntaxError: for-in loop head declarations may not have initializers </pre> -<h3 id="有効な_for-in_ループ">有効な for-in ループ</h3> +<h3 id="Valid_for-in_loop">有効な for-in ループ</h3> -<p>for-in ループのヘッダーから初期化子 (<code>i = 0</code>) を削除します。</p> +<p>for-in ループのヘッダーから初期化子 (<code>i = 0</code>) を削除してください。</p> <pre class="brush: js example-good">"use strict"; @@ -54,9 +55,9 @@ for (var i in obj) { } </pre> -<h3 id="Array_イテレーション">Array イテレーション</h3> +<h3 id="Array_iteration">Array の反復処理</h3> -<p>for...in ループを <a href="/ja/docs/Web/JavaScript/Reference/Statements/for...in#Array_iteration_and_for...in">Array イテレーションで使用すべきではありません</a>。{{jsxref("Array")}} を反復するのに、<code>for-in</code> ループの代わりに <code><a href="/ja/docs/Web/JavaScript/Reference/Statements/for">for</a></code> ループを使用するつもりはありますか?<code>for</code> ループでは、初期化子を設定できます:</p> +<p>for...in ループは <a href="/ja/docs/Web/JavaScript/Reference/Statements/for...in#array_iteration_and_for...in">Array の反復処理で使用すべきではありません</a>。 {{jsxref("Array")}} を反復するのに、 <code><a href="/ja/docs/Web/JavaScript/Reference/Statements/for">for</a></code> ループを <code>for-in</code> ループの代わりに使うつもりだったのでしょうか。 <code>for</code> ループならば、初期化子を設定することができます。</p> <pre class="brush: js example-good">var arr = [ "a", "b", "c" ] @@ -69,7 +70,10 @@ for (var i = 2; i < arr.length; i++) { <h2 id="関連項目">関連項目</h2> <ul> - <li><code><a href="/ja/docs/Web/JavaScript/Reference/Statements/for...in">for...in</a></code></li> - <li><code><a href="/ja/docs/Web/JavaScript/Reference/Statements/for...of">for...of</a></code> – strict モードと非 strict モードどちらでも初期化できない。</li> - <li><code><a href="/ja/docs/Web/JavaScript/Reference/Statements/for">for</a></code> – array イテレーションに向いており、初期化子を定義できる。</li> + <li> + <code><a href="/ja/docs/Web/JavaScript/Reference/Statements/for...in">for...in</a></code> + </li> + <li> + <code><a href="/ja/docs/Web/JavaScript/Reference/Statements/for...of">for...of</a></code> – こちらも strict モードであろうとなかろうと初期化子が使用できない。</li> + <li><code><a href="/ja/docs/Web/JavaScript/Reference/Statements/for">for</a></code> – 配列の反復処理に向いており、初期化子を定義できる。</li> </ul> diff --git a/files/ja/web/javascript/reference/errors/invalid_for-of_initializer/index.html b/files/ja/web/javascript/reference/errors/invalid_for-of_initializer/index.html index 99792a7afe..011623db9f 100644 --- a/files/ja/web/javascript/reference/errors/invalid_for-of_initializer/index.html +++ b/files/ja/web/javascript/reference/errors/invalid_for-of_initializer/index.html @@ -5,17 +5,18 @@ title: >- slug: Web/JavaScript/Reference/Errors/Invalid_for-of_initializer tags: - Error - - Errors - JavaScript - SyntaxError translation_of: Web/JavaScript/Reference/Errors/Invalid_for-of_initializer --- <div>{{jsSidebar("Errors")}}</div> -<h2 id="メッセージ">メッセージ</h2> +<p>JavaScript の例外 "a declaration in the head of a for-of loop can't have an initializer" は、 <a href="/ja/docs/Web/JavaScript/Reference/Statements/for...of">for...of</a> ループの先頭に |<code>for (var i = 0 of iterable)</code>| のように初期化子が含まれている場合に発生します。これは for-of ループでは許可されていません。</p> -<pre class="syntaxbox">SyntaxError: a declaration in the head of a for-of loop can't have an initializer (Firefox) +<h2 id="Message">エラーメッセージ</h2> +<pre class="brush: js">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> @@ -25,11 +26,11 @@ SyntaxError: for-of loop variable declaration may not have an initializer. (Chro <h2 id="何がうまくいかなかったのか?">何がうまくいかなかったのか?</h2> -<p><a href="/ja/docs/Web/JavaScript/Reference/Statements/for...of">for...of</a> ループのヘッダ―に初期化式が含まれています。つまり、変数が宣言され、値が代入されています |<code>for (var i = 0 of iterable)</code>|。これは、for-of ループでは許可されていません。初期化できる <code><a href="/ja/docs/Web/JavaScript/Reference/Statements/for">for</a></code> ループを使用した方が良いかもしれません。</p> +<p><a href="/ja/docs/Web/JavaScript/Reference/Statements/for...of">for...of</a> ループの先頭に初期化式が含まれています。つまり、 |<code>for (var i = 0 of iterable)</code>| のように変数が宣言され、値が代入されています。これは、 for-of ループでは許可されていません。初期化できる <code><a href="/ja/docs/Web/JavaScript/Reference/Statements/for">for</a></code> ループを使用した方が良いかもしれません。</p> <h2 id="例">例</h2> -<h3 id="不正な_for-of_ループ">不正な <code>for-of</code> ループ</h3> +<h3 id="Invalid_for-of_loop">不正な <code>for-of</code> ループ</h3> <pre class="brush: js example-bad">let iterable = [10, 20, 30]; @@ -40,7 +41,7 @@ for (let value = 50 of iterable) { // 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> +<h3 id="Valid_for-of_loop">有効な <code>for-of</code> ループ</h3> <p><code>for-of</code> ループのヘッダーから初期化子 (<code>value = 50</code>) を取り除く必要があります。おそらく、50 をオフセット値にしようとしているのでしょうから、たとえばループのボディー内で 50 を加えられます。</p> diff --git a/files/ja/web/javascript/reference/errors/invalid_right_hand_side_instanceof_operand/index.html b/files/ja/web/javascript/reference/errors/invalid_right_hand_side_instanceof_operand/index.html index 5279e67cfa..4edf6554fe 100644 --- a/files/ja/web/javascript/reference/errors/invalid_right_hand_side_instanceof_operand/index.html +++ b/files/ja/web/javascript/reference/errors/invalid_right_hand_side_instanceof_operand/index.html @@ -2,18 +2,20 @@ title: 'TypeError: invalid ''instanceof'' operand ''x''' slug: Web/JavaScript/Reference/Errors/invalid_right_hand_side_instanceof_operand tags: - - Error - - Errors - - JavaScript - - Reference - - TypeError +- Error +- Errors +- JavaScript +- Reference +- TypeError translation_of: Web/JavaScript/Reference/Errors/invalid_right_hand_side_instanceof_operand --- <div>{{jsSidebar("Errors")}}</div> -<h2 id="メッセージ">メッセージ</h2> +<p>JavaScript の例外 "invalid 'instanceof' operand" は、 <a href="/ja/docs/Web/JavaScript/Reference/Operators/instanceof"><code>instanceof</code> 演算子</a>の右側のオペランドにコンストラクターオブジェクト、すなわち <code>prototype</code> を持ち呼び出すことができるものが使用されなかった場合に発生します。</p> -<pre class="syntaxbox">TypeError: invalid 'instanceof' operand "x" (Firefox) +<h2 id="Message">エラーメッセージ</h2> + +<pre class="brush: js">TypeError: invalid 'instanceof' operand "x" (Firefox) TypeError: "x" is not a function (Firefox) TypeError: Right-hand side of 'instanceof' is not an object (Chrome) TypeError: Right-hand side of 'instanceof' is not callable (Chrome)</pre> @@ -28,18 +30,20 @@ TypeError: Right-hand side of 'instanceof' is not callable (Chrome)</pre> <h2 id="例">例</h2> +<h3 id="instanceof_vs_typeof">instanceof と typeof</h3> + <pre class="brush: js example-bad">"test" instanceof ""; // TypeError: invalid 'instanceof' operand "" 42 instanceof 0; // TypeError: invalid 'instanceof' operand 0 function Foo() {} -var f = Foo(); // Foo() is called and returns undefined +var f = Foo(); // Foo() が呼び出されて undefined を返す var x = new Foo(); x instanceof f; // TypeError: invalid 'instanceof' operand f x instanceof x; // TypeError: x is not a function </pre> -<p>これらのエラータイプを修正するには、<a href="/ja/docs/Web/JavaScript/Reference/Operators/instanceof"><code>instanceof</code> 演算子</a> を <a href="/ja/docs/Web/JavaScript/Reference/Operators/typeof"><code>typeof</code> 演算子</a> に置き換えるか、評価結果の代わりに関数名を使用するようにしてください。</p> +<p>これらのエラーを修正するには、<a href="/ja/docs/Web/JavaScript/Reference/Operators/instanceof"><code>instanceof</code> 演算子</a> を <a href="/ja/docs/Web/JavaScript/Reference/Operators/typeof"><code>typeof</code> 演算子</a> に置き換えるか、評価結果の代わりに関数名を使用するようにしてください。</p> <pre class="brush: js example-good">typeof "test" == "string"; // true typeof 42 == "number" // true @@ -55,8 +59,6 @@ x instanceof Foo; // true <h2 id="関連項目">関連項目</h2> <ul> - <li><a href="/ja/docs/Web/JavaScript/Reference/Operators/instanceof"><code>instanceof</code> 演算子</a></li> - <li><a href="/ja/docs/Web/JavaScript/Reference/Operators/typeof"><code>typeof</code> 演算子</a></li> + <li><a href="/ja/docs/Web/JavaScript/Reference/Operators/instanceof"><code>instanceof</code> 演算子</a></li> + <li><a href="/ja/docs/Web/JavaScript/Reference/Operators/typeof"><code>typeof</code> 演算子</a></li> </ul> - -<p> </p> diff --git a/files/ja/web/javascript/reference/errors/is_not_iterable/index.html b/files/ja/web/javascript/reference/errors/is_not_iterable/index.html index 6da6ca9b19..665371733f 100644 --- a/files/ja/web/javascript/reference/errors/is_not_iterable/index.html +++ b/files/ja/web/javascript/reference/errors/is_not_iterable/index.html @@ -10,9 +10,11 @@ translation_of: Web/JavaScript/Reference/Errors/is_not_iterable --- <div>{{jsSidebar("Errors")}}</div> -<h2 id="メッセージ">メッセージ</h2> +<p>JavaScript の例外 "is not iterable" は、 <a href="/ja/docs/Web/JavaScript/Guide/Loops_and_iteration#for...of_statement">for…of</a> の右辺として与えられた値や、 {{jsxref("Promise.all")}} または {{jsxref("TypedArray.from")}} のような関数の引数として与えられた値が<a href="/ja/docs/Web/JavaScript/Reference/Iteration_protocols">反復可能オブジェクト</a>ではなかった場合に発生します。</p> -<pre class="syntaxbox">TypeError: 'x' is not iterable (Firefox, Chrome) +<h2 id="Message">エラーメッセージ</h2> + +<pre class="brush: js">TypeError: 'x' is not iterable (Firefox, Chrome) TypeError: 'x' is not a function or its return value is not iterable (Chrome) </pre> @@ -22,13 +24,13 @@ TypeError: 'x' is not a function or its return value is not iterable (Chrome) <h2 id="何がうまくいかなかったのか?">何がうまくいかなかったのか?</h2> -<p><a href="/ja/docs/Web/JavaScript/Guide/Loops_and_iteration#for...of_statement">for…of</a> の右側や {{jsxref("Promise.all")}} や {{jsxref("TypedArray.from")}} のような関数の引数として与えられた値が <a href="/ja/docs/Web/JavaScript/Reference/Iteration_protocols">反復可能オブジェクト</a> ではありません。反復可能なものは、{{jsxref("Array")}} や {{jsxref("String")}}、{{jsxref("Map")}}、ジェネレーターの結果のようなビルトイン反復可能型や <a href="/ja/docs/Web/JavaScript/Reference/Iteration_protocols#The_iterable_protocol">反復処理プロトコル</a> を実装したオブジェクトです。</p> +<p><a href="/ja/docs/Web/JavaScript/Guide/Loops_and_iteration#for...of_statement">for…of</a> の右辺、 {{jsxref("Promise.all")}} や {{jsxref("TypedArray.from")}} などの引数として指定された値が<a href="/ja/docs/Web/JavaScript/Reference/Iteration_protocols">反復可能オブジェクト</a>ではありません。反復可能なものは、 {{jsxref("Array")}}, {{jsxref("String")}}, {{jsxref("Map")}} 等のような組み込み反復可能型や、ジェネレーターの結果、<a href="/ja/docs/Web/JavaScript/Reference/Iteration_protocols#the_iterable_protocol">反復可能プロトコル</a>を実装しているオブジェクトが成ることができます。</p> <h2 id="例">例</h2> -<h3 id="オブジェクトのプロパティを反復処理する">オブジェクトのプロパティを反復処理する</h3> +<h3 id="Iterating_over_Object_properties">オブジェクトのプロパティの反復処理</h3> -<p>JavaScript では、<a href="/ja/docs/Web/JavaScript/Reference/Iteration_protocols#The_iterable_protocol">反復処理プロトコル</a> を実装していない限り {{jsxref("Object")}} は反復処理できません。それゆえ、オブジェクトのプロパティを反復処理するために <a href="/ja/docs/Web/JavaScript/Guide/Loops_and_iteration#for...of_statement">for…of</a> を使用することはできません。</p> +<p>JavaScript では、 {{jsxref("Object")}} は<a href="/ja/docs/Web/JavaScript/Reference/Iteration_protocols#the_iterable_protocol">反復処理プロトコル</a> を実装していない限り反復処理できません。したがって、オブジェクトのプロパティを反復処理するために <a href="/ja/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 @@ -48,10 +50,9 @@ for (let country of Object.keys(obj)) { for (const [country, capital] of Object.entries(obj)) console.log(country, capital); - </pre> -<p>このユースケースのそのほかの選択肢として、{{jsxref("Map")}} を使用することもできます:</p> +<p>この使用例のそのほかの選択肢として、{{jsxref("Map")}} を使用することもできます。</p> <pre class="brush: js example-good">var map = new Map; map.set('France', 'Paris'); @@ -69,9 +70,9 @@ for (const [country, capital] of map.entries()) console.log(country, capital); </pre> -<h3 id="ジェネレーターを反復処理する">ジェネレーターを反復処理する</h3> +<h3 id="Iterating_over_a_generator">ジェネレーターを反復処理する</h3> -<p><a href="/ja/docs/Web/JavaScript/Guide/Iterators_and_Generators#Generators">ジェネレーター</a> は反復可能オブジェクトを生成するために呼び出す関数です。</p> +<p><a href="/ja/docs/Web/JavaScript/Guide/Iterators_and_Generators#generators">ジェネレーター</a> 反復可能オブジェクトを生成するために呼び出す関数です。</p> <pre class="brush: js example-bad">function* generate(a, b) { yield a; @@ -93,13 +94,38 @@ for (let x of generate(1,2)) console.log(x); </pre> -<h2 id="関連項目">関連項目</h2> +<h3 id="Iterating_over_a_custom_iterable">独自の反復可能オブジェクトでの反復処理</h3> + +<p>独自の反復可能オブジェクトは、 {{jsxref("Symbol.iterator")}} メソッドを実装することで作成することができます。 iterator メソッドはイテレーターであるオブジェクト、すなわち next メソッドを持っている必要があります。 +</p> + +<pre class="brush: js example-bad">const myEmptyIterable = { + [Symbol.iterator]() { + return [] // [] は反復可能ですが、イテレーターではありません。 -- next メソッドがないからです。 + } +} + +Array.from(myEmptyIterable); // TypeError: myEmptyIterable is not iterable +</pre> + +<p>こちらは正しい実装です。</p> + +<pre class="brush: js example-good">const myEmptyIterable = { + [Symbol.iterator]() { + return [][Symbol.iterator]() + } +} + +Array.from(myEmptyIterable); // [] +</pre> + +<h2 id="See_also">関連情報</h2> <ul> - <li><a href="/ja/docs/Web/JavaScript/Reference/Iteration_protocols#The_iterable_protocol">反復処理プロトコル</a></li> - <li>{{jsxref("Object.keys")}}</li> - <li>{{jsxref("Object.entries")}}</li> - <li>{{jsxref("Map")}}</li> - <li><a href="/ja/docs/Web/JavaScript/Guide/Iterators_and_Generators#Generators">イテレーターとジェネレーター</a></li> - <li><a href="/ja/docs/Web/JavaScript/Guide/Loops_and_iteration#for...of_statement">for…of</a></li> + <li><a href="/ja/docs/Web/JavaScript/Reference/Iteration_protocols#the_iterable_protocol">反復処理プロトコル</a></li> + <li>{{jsxref("Object.keys")}}</li> + <li>{{jsxref("Object.entries")}}</li> + <li>{{jsxref("Map")}}</li> + <li><a href="/ja/docs/Web/JavaScript/Guide/Iterators_and_Generators#generators">ジェネレーター</a></li> + <li><a href="/ja/docs/Web/JavaScript/Guide/Loops_and_iteration#for...of_statement">for…of</a></li> </ul> diff --git a/files/ja/web/javascript/reference/errors/json_bad_parse/index.html b/files/ja/web/javascript/reference/errors/json_bad_parse/index.html index 1f1af72e0e..6115bfd192 100644 --- a/files/ja/web/javascript/reference/errors/json_bad_parse/index.html +++ b/files/ja/web/javascript/reference/errors/json_bad_parse/index.html @@ -2,20 +2,20 @@ title: 'SyntaxError: JSON.parse: bad parsing' slug: Web/JavaScript/Reference/Errors/JSON_bad_parse tags: - - Error - - Errors - - JSON - - JavaScript - - SyntaxError +- Error +- Errors +- JSON +- JavaScript +- SyntaxError translation_of: Web/JavaScript/Reference/Errors/JSON_bad_parse --- <div>{{jsSidebar("Errors")}}</div> <p>JavaScript の例外で、 {{jsxref("JSON.parse()")}} が文字列を JSON として解釈するのに失敗した場合に発生します。</p> -<h2 id="Message" name="Message">メッセージ</h2> +<h2 id="Message">メッセージ</h2> -<pre class="syntaxbox notranslate">SyntaxError: JSON.parse: unterminated string literal +<pre class="brush: js">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 @@ -48,21 +48,21 @@ SyntaxError: JSON.parse: unexpected character SyntaxError: JSON.parse: unexpected non-whitespace character after JSON data SyntaxError: JSON.parse Error: Invalid character at position {0} (Edge)</pre> -<h2 id="Error_type" name="Error_type">エラー種別</h2> +<h2 id="Error_type">エラー種別</h2> <p>{{jsxref("SyntaxError")}}</p> -<h2 id="What_went_wrong" name="What_went_wrong">エラーの原因</h2> +<h2 id="What_went_wrong">エラーの原因</h2> <p>{{jsxref("JSON.parse()")}} は文字列を JSON として解釈します。この文字列は妥当な JSON であるべきであり、不正確な構文に出会った場合、このエラーが発生します。</p> -<h2 id="Examples" name="Examples">例</h2> +<h2 id="Examples">例</h2> -<h3 id="JSON.parse_does_not_allow_trailing_commas" name="JSON.parse_does_not_allow_trailing_commas">JSON.parse() は末尾のカンマを許容しない</h3> +<h3 id="JSON.parse_does_not_allow_trailing_commas"><code>JSON.parse()</code> は末尾のカンマを許容しない</h3> <p>どちらの行でも SyntaxError が発生します。</p> -<pre class="brush: js example-bad notranslate">JSON.parse('[1, 2, 3, 4,]'); +<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 @@ -70,26 +70,26 @@ JSON.parse('{"foo": 1,}'); <p>末尾のカンマを省略すると、正しく JSON として解釈します。</p> -<pre class="brush: js example-good notranslate">JSON.parse('[1, 2, 3, 4]'); +<pre class="brush: js example-good">JSON.parse('[1, 2, 3, 4]'); JSON.parse('{"foo": 1}');</pre> -<h3 id="Property_names_must_be_double-quoted_strings" name="Property_names_must_be_double-quoted_strings">プロパティ名は二重引用符で囲んだ文字列でなければならない</h3> +<h3 id="Property_names_must_be_double-quoted_strings">プロパティ名は二重引用符で囲んだ文字列でなければならない</h3> -<p>プロパティの周囲を囲むのに、たとえば'foo' のように単一引用符を使用してはいけません。</p> +<p>プロパティを囲むのに、たとえば 'foo' のように単一引用符を使用してはいけません。</p> -<pre class="brush: js example-bad notranslate">JSON.parse("{'foo': 1}"); +<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 notranslate">JSON.parse('{"foo": 1}');</pre> +<pre class="brush: js example-good">JSON.parse('{"foo": 1}');</pre> -<h3 id="Leading_zeros_and_decimal_points" name="Leading_zeros_and_decimal_points">先頭のゼロと小数点</h3> +<h3 id="Leading_zeros_and_decimal_points">先頭のゼロと小数点</h3> <p>01 のような先頭の 0 は使用できません。また、小数点の後には少なくとも 1 桁以上が続かなければなりません。</p> -<pre class="brush: js example-bad notranslate">JSON.parse('{"foo": 01}'); +<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 @@ -100,14 +100,14 @@ JSON.parse('{"foo": 1.}'); <p>0 を除いて 1 だけを書いてください。また、小数点の後には少なくとも 1 桁の数字を置いてください。</p> -<pre class="brush: js example-good notranslate">JSON.parse('{"foo": 1}'); +<pre class="brush: js example-good">JSON.parse('{"foo": 1}'); JSON.parse('{"foo": 1.0}'); </pre> -<h2 id="See_also" name="See_also">関連情報</h2> +<h2 id="See_also">関連情報</h2> <ul> - <li>{{jsxref("JSON")}}</li> - <li>{{jsxref("JSON.parse()")}}</li> - <li>{{jsxref("JSON.stringify()")}}</li> + <li>{{jsxref("JSON")}}</li> + <li>{{jsxref("JSON.parse()")}}</li> + <li>{{jsxref("JSON.stringify()")}}</li> </ul> |