diff options
author | Masahiro FUJIMOTO <mfujimot@gmail.com> | 2021-06-25 01:40:44 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-25 01:40:44 +0900 |
commit | fa9d0b4ad49db970ba8707a4f6ab9ce17b5383b8 (patch) | |
tree | 393eb2ca37a645499036e6e1baee2bf0f2ec9529 /files | |
parent | edcbfa42307307b620944e0aa4f6125d47e811eb (diff) | |
download | translated-content-fa9d0b4ad49db970ba8707a4f6ab9ce17b5383b8.tar.gz translated-content-fa9d0b4ad49db970ba8707a4f6ab9ce17b5383b8.tar.bz2 translated-content-fa9d0b4ad49db970ba8707a4f6ab9ce17b5383b8.zip |
Web/JavaScript/Reference/Errors/P-V* を更新 (#1205)
* Web/JavaScript/Reference/Errors/P-V* を更新
2021/06/14 時点の英語版に同期
* スラッグを修正
Diffstat (limited to 'files')
17 files changed, 918 insertions, 901 deletions
diff --git a/files/ja/orphaned/web/javascript/reference/errors/typed_array_invalid_arguments/index.html b/files/ja/orphaned/web/javascript/reference/errors/typed_array_invalid_arguments/index.html index b02af7aa13..7f21add937 100644 --- a/files/ja/orphaned/web/javascript/reference/errors/typed_array_invalid_arguments/index.html +++ b/files/ja/orphaned/web/javascript/reference/errors/typed_array_invalid_arguments/index.html @@ -7,7 +7,6 @@ tags: - JavaScript - TypeError translation_of: Web/JavaScript/Reference/Errors/Typed_array_invalid_arguments -original_slug: Web/JavaScript/Reference/Errors/Typed_array_invalid_arguments --- <div>{{jsSidebar("Errors")}}</div> @@ -15,7 +14,7 @@ original_slug: Web/JavaScript/Reference/Errors/Typed_array_invalid_arguments <pre class="syntaxbox">TypeError: invalid arguments (Firefox)</pre> -<h2 id="エラータイプ">エラータイプ</h2> +<h2 id="Error_type">エラーの種類</h2> <p>{{jsxref("TypeError")}}</p> diff --git a/files/ja/web/javascript/reference/errors/precision_range/index.html b/files/ja/web/javascript/reference/errors/precision_range/index.html index c593c2b225..08b07dd34f 100644 --- a/files/ja/web/javascript/reference/errors/precision_range/index.html +++ b/files/ja/web/javascript/reference/errors/precision_range/index.html @@ -1,101 +1,101 @@ ---- -title: 'RangeError: precision is out of range' -slug: Web/JavaScript/Reference/Errors/Precision_range -tags: -- Error -- Errors -- JavaScript -- RangeError -translation_of: Web/JavaScript/Reference/Errors/Precision_range ---- -<div>{{jsSidebar("Errors")}}</div> - -<p>JavaScript の例外 "precision is out of range" は、 <code>toFixed</code> または <code>toPrecision</code> に 0 から 20 (または 21) までの範囲外の数値が渡された場合に発生します。</p> - -<h2 id="Message">メッセージ</h2> - -<pre class="brush: js">RangeError: The number of fractional digits is out of range (Edge) -RangeError: The precision is out of range (Edge) -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="Error_type">エラー種別</h2> - -<p>{{jsxref("RangeError")}}</p> - -<h2 id="What_went_wrong">原因</h2> - -<p>これらのメソッドのいずれかで、 範囲外の精度を引数を使用しています。</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">メソッド</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="Examples">例</h2> - -<h3 id="Invalid_cases">無効なケース</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="Valid_cases">有効なケース</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 (この場合は丸めが発生することに注意してください) - -5.123456.toPrecision(5); // 5.1235 -5.123456.toPrecision(2); // 5.1 -5.123456.toPrecision(1); // 5 -</pre> - -<h2 id="See_also">関連情報</h2> - -<ul> - <li>{{jsxref("Number.prototype.toExponential()")}}</li> - <li>{{jsxref("Number.prototype.toFixed()")}}</li> - <li>{{jsxref("Number.prototype.toPrecision()")}}</li> -</ul> +---
+title: 'RangeError: precision is out of range'
+slug: Web/JavaScript/Reference/Errors/Precision_range
+tags:
+- Error
+- Errors
+- JavaScript
+- RangeError
+translation_of: Web/JavaScript/Reference/Errors/Precision_range
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<p>JavaScript の例外 "precision is out of range" は、 <code>toFixed</code> または <code>toPrecision</code> に 0 から 20 (または 21) までの範囲外の数値が渡された場合に発生します。</p>
+
+<h2 id="Message">エラーメッセージ</h2>
+
+<pre class="brush: js">RangeError: The number of fractional digits is out of range (Edge)
+RangeError: The precision is out of range (Edge)
+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="Error_type">エラーの種類</h2>
+
+<p>{{jsxref("RangeError")}}</p>
+
+<h2 id="What_went_wrong">エラーの原因</h2>
+
+<p>これらのメソッドのいずれかで、 範囲外の精度を引数を使用しています。</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">メソッド</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="Examples">例</h2>
+
+<h3 id="Invalid_cases">無効なケース</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="Valid_cases">有効な場合</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 (この場合は丸めが発生することに注意してください)
+
+5.123456.toPrecision(5); // 5.1235
+5.123456.toPrecision(2); // 5.1
+5.123456.toPrecision(1); // 5
+</pre>
+
+<h2 id="See_also">関連情報</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/ja/web/javascript/reference/errors/property_access_denied/index.html b/files/ja/web/javascript/reference/errors/property_access_denied/index.html index 30015bdc4f..0d3057702a 100644 --- a/files/ja/web/javascript/reference/errors/property_access_denied/index.html +++ b/files/ja/web/javascript/reference/errors/property_access_denied/index.html @@ -1,51 +1,51 @@ ---- -title: 'Error: Permission denied to access property "x"' -slug: Web/JavaScript/Reference/Errors/Property_access_denied -tags: - - Error - - Errors - - JavaScript - - Security -translation_of: Web/JavaScript/Reference/Errors/Property_access_denied ---- -<div>{{jsSidebar("Errors")}}</div> - -<p>JavaScript の例外 "Permission denied to access property" は、権限がない状態でオブジェクトへのアクセスの試行があった場合に発生します。</p> - -<h2 id="Message" name="Message">メッセージ</h2> - -<pre class="syntaxbox notranslate">Error: Permission denied to access property "x" -</pre> - -<h2 id="Error_type" name="Error_type">エラー種別</h2> - -<p>{{jsxref("Error")}}</p> - -<h2 id="What_went_wrong" name="What_went_wrong">原因</h2> - -<p>権限がない状態でオブジェクトへのアクセスの試行がありました。これは異なるドメインから読み込んだ {{HTMLElement("iframe")}} 要素が<a href="/ja/docs/Web/Security/Same-origin_policy">同一オリジンポリシー</a>に違反する場合などです。</p> - -<h2 id="Examples" name="Examples">例</h2> - -<h3 id="No_permission_to_access_document" name="No_permission_to_access_document">文書にアクセスする権限がない</h3> - -<pre class="brush: html notranslate"><!DOCTYPE html> -<html> - <head> - <iframe id="myframe" src="http://www1.w3c-test.org/common/blank.html"></iframe> - <script> - onload = function() { - console.log(frames[0].document); - // Error: Permission denied to access property "document" - } - </script> - </head> - <body></body> -</html></pre> - -<h2 id="See_also" name="See_also">関連情報</h2> - -<ul> - <li>{{HTMLElement("iframe")}}</li> - <li><a href="/ja/docs/Web/Security/Same-origin_policy">同一オリジンポリシー</a></li> -</ul> +---
+title: 'Error: Permission denied to access property "x"'
+slug: Web/JavaScript/Reference/Errors/Property_access_denied
+tags:
+- Error
+- Errors
+- JavaScript
+- Security
+translation_of: Web/JavaScript/Reference/Errors/Property_access_denied
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<p>JavaScript の例外 "Permission denied to access property" は、権限がない状態でオブジェクトへのアクセスの試行があった場合に発生します。</p>
+
+<h2 id="Message">エラーメッセージ</h2>
+
+<pre class="brush: js">Error: Permission denied to access property "x"
+</pre>
+
+<h2 id="Error_type">エラーの種類</h2>
+
+<p>{{jsxref("Error")}}</p>
+
+<h2 id="What_went_wrong">エラーの原因</h2>
+
+<p>権限がない状態でオブジェクトへのアクセスの試行がありました。これは異なるドメインから読み込んだ {{HTMLElement("iframe")}} 要素が<a href="/ja/docs/Web/Security/Same-origin_policy">同一オリジンポリシー</a>に違反する場合などです。</p>
+
+<h2 id="Examples">例</h2>
+
+<h3 id="No_permission_to_access_document">文書にアクセスする権限がない</h3>
+
+<pre class="brush: html"><!DOCTYPE html>
+<html>
+ <head>
+ <iframe id="myframe" src="http://www1.w3c-test.org/common/blank.html"></iframe>
+ <script>
+ onload = function() {
+ console.log(frames[0].document);
+ // Error: Permission denied to access property "document"
+ }
+ </script>
+ </head>
+ <body></body>
+</html></pre>
+
+<h2 id="See_also">関連情報</h2>
+
+<ul>
+ <li>{{HTMLElement("iframe")}}</li>
+ <li><a href="/ja/docs/Web/Security/Same-origin_policy">同一オリジンポリシー</a></li>
+</ul>
diff --git a/files/ja/web/javascript/reference/errors/read-only/index.html b/files/ja/web/javascript/reference/errors/read-only/index.html index 7aa68e012f..f3c6566eac 100644 --- a/files/ja/web/javascript/reference/errors/read-only/index.html +++ b/files/ja/web/javascript/reference/errors/read-only/index.html @@ -2,6 +2,7 @@ title: 'TypeError: "x" is read-only' slug: Web/JavaScript/Reference/Errors/Read-only tags: + - Error - Errors - JavaScript - TypeError @@ -9,21 +10,26 @@ translation_of: Web/JavaScript/Reference/Errors/Read-only --- <div>{{jsSidebar("Errors")}}</div> -<h2 id="メッセージ">メッセージ</h2> +<p>The JavaScript <a href="/en-US/docs/Web/JavaScript/Reference/Strict_mode">strict + mode</a>-only exception "is read-only" occurs when a global variable or object + property that was assigned to is a read-only property.</p> -<pre class="syntaxbox">TypeError: "x" is read-only (Firefox) +<h2 id="Message">エラーメッセージ</h2> + +<pre class="brush: js">TypeError: Assignment to read-only properties is not allowed in strict mode (Edge) +TypeError: "x" is read-only (Firefox) TypeError: 0 is read-only (Firefox) TypeError: Cannot assign to read only property 'x' of #<Object> (Chrome) TypeError: Cannot assign to read only property '0' of [object Array] (Chrome) </pre> -<h2 id="エラータイプ">エラータイプ</h2> +<h2 id="Error_type">エラーの種類</h2> <p>{{jsxref("TypeError")}}</p> <h2 id="何がうまくいかなかったのか?">何がうまくいかなかったのか?</h2> -<p>値を割り当てようとしたグローバル変数、またはオブジェクトのプロパティが読み取り専用プロパティです。(技術的には、 <a href="/ja/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty#Writable_attribute">non-writable データプロパティ</a> です。)</p> +<p>値を割り当てようとしたグローバル変数、またはオブジェクトのプロパティが読み取り専用プロパティです。 (技術的には、 <a href="/ja/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty#writable_attribute">non-writable データプロパティ</a> です。)</p> <p>このエラーは、<a href="/ja/docs/Web/JavaScript/Reference/Strict_mode">strict モードコード</a> のときにだけ発生します。strict コードではない場合、割り当ては無視されるだけです。</p> @@ -33,40 +39,40 @@ TypeError: Cannot assign to read only property '0' of [object Array] (Chrome) <p>読み取り専用プロパティはさほど一般的ではありませんが、 {{jsxref("Object.defineProperty()")}}、または {{jsxref("Object.freeze()")}} を使用して生成できます。</p> -<pre class="brush: js example-bad">"use strict"; -var obj = Object.freeze({name: "Elsa", score: 157}); +<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}); +'use strict'; +Object.defineProperty(this, 'LUNG_COUNT', {value: 2, writable: false}); LUNG_COUNT = 3; // TypeError -"use strict"; +'use strict'; var frozenArray = Object.freeze([0, 1, 2]); frozenArray[0]++; // TypeError </pre> -<p>JavaScript のビルトインにも、いくつか読み取り専用プロパティがあります。 Math の定数を再定義しようとしたとします。</p> +<p>JavaScript の組み込みにも、いくつか読み取り専用プロパティがあります。 Math の定数を再定義しようとしたとします。</p> -<pre class="brush: js example-bad">"use strict"; +<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> +<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 class="brush: js example-bad">'use strict'; +undefined = function() {}; // TypeError: "undefined" is read-only </pre> -<h3 id="有効なケース">有効なケース</h3> +<h3 id="Valid_cases">有効な場合</h3> -<pre class="brush: js example-good">"use strict"; -var obj = Object.freeze({name: "Score", points: 157}); +<pre class="brush: js example-good">'use strict'; +var obj = Object.freeze({name: 'Score', points: 157}); obj = {name: obj.name, points: 0}; // 新しいオブジェクトで置き換える -"use strict"; +'use strict'; var LUNG_COUNT = 2; // `var` が使われているので、読み取り専用ではない LUNG_COUNT = 3; // ok (解剖学的にはおかしいけれども) </pre> @@ -74,8 +80,6 @@ LUNG_COUNT = 3; // ok (解剖学的にはおかしいけれども) <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> (問いへの別解)</li> + <li>{{jsxref("Object.defineProperty()")}}</li> + <li>{{jsxref("Object.freeze()")}}</li> </ul> diff --git a/files/ja/web/javascript/reference/errors/redeclared_parameter/index.html b/files/ja/web/javascript/reference/errors/redeclared_parameter/index.html index c8baee62ea..ced5764f2f 100644 --- a/files/ja/web/javascript/reference/errors/redeclared_parameter/index.html +++ b/files/ja/web/javascript/reference/errors/redeclared_parameter/index.html @@ -1,61 +1,62 @@ ---- -title: 'SyntaxError: redeclaration of formal parameter "x"' -slug: Web/JavaScript/Reference/Errors/Redeclared_parameter -tags: - - Error - - Errors - - JavaScript - - SyntaxError -translation_of: Web/JavaScript/Reference/Errors/Redeclared_parameter ---- -<div>{{jsSidebar("Errors")}}</div> - -<p>JavaScript の例外 "redeclaration of formal parameter" は、関数の引数名としてある変数名が発生した後、関数本体内の {{jsxref("Statements/let", "let")}} 代入文を使用して同じ変数名を再度宣言すると発生します。</p> - -<h2 id="Message" name="Message">メッセージ</h2> - -<pre class="syntaxbox notranslate">SyntaxError: Let/Const redeclaration (Edge) -SyntaxError: redeclaration of formal parameter "x" (Firefox) -SyntaxError: Identifier "x" has already been declared (Chrome) -</pre> - -<h2 id="Error_type" name="Error_type">エラー種別</h2> - -<p>{{jsxref("SyntaxError")}}</p> - -<h2 id="What_went_wrong" name="What_went_wrong">エラーの原因</h2> - -<p>関数の引数と同名の変数があり、関数内で再度 {{jsxref("Statements/let", "let")}} 代入文を使用して再宣言しています。 JavaScript では、同じ関数内やブロックスコープ内で <code>let</code> を使用して同じ変数を再宣言できません。</p> - -<h2 id="Examples" name="Examples">例</h2> - -<h3 id="Redeclared_argument" name="Redeclared_argument">再宣言した引数</h3> - -<p>この場合、変数 "arg" は、引数を再宣言しています。</p> - -<pre class="brush: js example-bad notranslate">function f(arg) { - let arg = 'foo'; -} - -// SyntaxError: redeclaration of formal parameter "arg" -</pre> - -<p>関数の本体内で "arg" の値を変更したい場合、これを行うことはできますが、再び同じ変数を宣言する必要はありません。言い換えれば、 <code>let</code> キーワードを省略することができます。新しい変数を生成する場合は、既存の関数の引数と競合するので、変数名を変更する必要があります。</p> - -<pre class="brush: js example-good notranslate">function f(arg) { - arg = 'foo'; -} - -function f(arg) { - let bar = 'foo'; -} -</pre> - -<h2 id="See_also" name="See_also">関連情報</h2> - -<ul> - <li>{{jsxref("Statements/let", "let")}}</li> - <li>{{jsxref("Statements/const", "const")}}</li> - <li>{{jsxref("Statements/var", "var")}}</li> - <li><a href="/ja/docs/Web/JavaScript/Guide">JavaScript ガイド</a> 内の <a href="/ja/docs/Web/JavaScript/Guide/Grammar_and_Types#Declarations">宣言</a></li> -</ul> +---
+title: 'SyntaxError: redeclaration of formal parameter "x"'
+slug: Web/JavaScript/Reference/Errors/Redeclared_parameter
+tags:
+ - Error
+ - Errors
+ - JavaScript
+ - SyntaxError
+translation_of: Web/JavaScript/Reference/Errors/Redeclared_parameter
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<p>JavaScript の例外 "redeclaration of formal parameter" は、関数の引数名としてある変数名が発生した後、関数本体内の {{jsxref("Statements/let", "let")}} 代入文を使用して同じ変数名を再度宣言すると発生します。</p>
+
+<h2 id="Message">エラーメッセージ</h2>
+
+<pre class="brush: js">SyntaxError: Let/Const redeclaration (Edge)
+SyntaxError: redeclaration of formal parameter "x" (Firefox)
+SyntaxError: Identifier "x" has already been declared (Chrome)
+</pre>
+
+<h2 id="Error_type">エラーの種類</h2>
+
+<p>{{jsxref("SyntaxError")}}</p>
+
+<h2 id="What_went_wrong">エラーの原因</h2>
+
+<p>関数の引数と同名の変数があり、関数内で再度 {{jsxref("Statements/let", "let")}} 代入文を使用して再宣言しています。 JavaScript では、同じ関数内やブロックスコープ内で <code>let</code> を使用して同じ変数を再宣言できません。</p>
+
+<h2 id="Examples">例</h2>
+
+<h3 id="Redeclared_argument">再宣言した引数</h3>
+
+<p>この場合、変数 "arg" は、引数を再宣言しています。</p>
+
+<pre class="brush: js example-bad">function f(arg) {
+ let arg = 'foo';
+}
+
+// SyntaxError: redeclaration of formal parameter "arg"
+</pre>
+
+<p>関数の本体内で "arg" の値を変更したい場合、これを行うことはできますが、再び同じ変数を宣言する必要はありません。言い換えれば、 <code>let</code> キーワードを省略することができます。新しい変数を生成する場合は、既存の関数の引数と競合するので、変数名を変更する必要があります。</p>
+
+<pre class="brush: js example-good">function f(arg) {
+ arg = 'foo';
+}
+
+function f(arg) {
+ let bar = 'foo';
+}
+</pre>
+
+<h2 id="See_also">関連情報</h2>
+
+<ul>
+ <li>{{jsxref("Statements/let", "let")}}</li>
+ <li>{{jsxref("Statements/const", "const")}}</li>
+ <li>{{jsxref("Statements/var", "var")}}</li>
+ <li><a href="/ja/docs/Web/JavaScript/Guide">JavaScript ガイド</a> 内の <a href="/ja/docs/Web/JavaScript/Guide/Grammar_and_types#declarations">宣言</a>
+ </li>
+</ul>
diff --git a/files/ja/web/javascript/reference/errors/reduce_of_empty_array_with_no_initial_value/index.html b/files/ja/web/javascript/reference/errors/reduce_of_empty_array_with_no_initial_value/index.html index 4af643bcdb..e8051bd023 100644 --- a/files/ja/web/javascript/reference/errors/reduce_of_empty_array_with_no_initial_value/index.html +++ b/files/ja/web/javascript/reference/errors/reduce_of_empty_array_with_no_initial_value/index.html @@ -2,26 +2,28 @@ title: 'TypeError: Reduce of empty array with no initial value' slug: Web/JavaScript/Reference/Errors/Reduce_of_empty_array_with_no_initial_value tags: - - Error - - JavaScript - - Reference - - TypeError +- Error +- JavaScript +- Reference +- TypeError translation_of: Web/JavaScript/Reference/Errors/Reduce_of_empty_array_with_no_initial_value --- <div>{{jsSidebar("Errors")}}</div> -<h2 id="メッセージ">メッセージ</h2> +<p>JavaScript の例外 "reduce of empty array with no initial value" は、 reduce 関数が使用されたときに発生します。</p> -<pre class="syntaxbox">TypeError: reduce of empty array with no initial value +<h2 id="Message">エラーメッセージ</h2> + +<pre class="brush: js">TypeError: reduce of empty array with no initial value </pre> -<h2 id="エラータイプ">エラータイプ</h2> +<h2 id="Error_type">エラーの種類</h2> <p>{{jsxref("TypeError")}}</p> <h2 id="何がうまくいかなかったのか?">何がうまくいかなかったのか?</h2> -<p>JavaScript には、複数の reduce 関数があります:</p> +<p>JavaScript には、複数の reduce 関数があります。</p> <ul> <li>{{jsxref("Array.prototype.reduce()")}}、{{jsxref("Array.prototype.reduceRight()")}} と</li> @@ -46,7 +48,7 @@ ints.filter(x => x > 0) // removes all elements var name_list = Array.prototype.reduce.call(names, (acc, name) => acc + ", " + name); </pre> -<h3 id="有効なケース">有効なケース</h3> +<h3 id="Valid_cases">有効な場合</h3> <p>これらの問題は、2 つの異なる方法で解決できます。</p> @@ -57,7 +59,7 @@ ints.filter(x => x < 0) // removes all elements .reduce((x, y) => x + y, 0) // the initial value is the neutral element of the addition </pre> -<p>もう 1 つの方法は、<code>reduce</code> を呼び出す前、または予期しないダミーの初期値を追加した後にコールバックで空のケースを処理する 2 つの方法です。</p> +<p>もう 1 つの方法は、<code>reduce</code> を呼び出す前、または予期しないダミーの初期値を追加した後にコールバックで空のケースを処理する方法です。</p> <pre class="brush: js example-good">var names = document.getElementsByClassName("names"); @@ -77,12 +79,12 @@ var name_list2 = Array.prototype.reduce.call(names, (acc, name) => { <h2 id="関連項目">関連項目</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> + <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/ja/web/javascript/reference/errors/reserved_identifier/index.html b/files/ja/web/javascript/reference/errors/reserved_identifier/index.html index 7f2ef49d74..fff7cdc308 100644 --- a/files/ja/web/javascript/reference/errors/reserved_identifier/index.html +++ b/files/ja/web/javascript/reference/errors/reserved_identifier/index.html @@ -1,80 +1,80 @@ ---- -title: 'SyntaxError: "x" is a reserved identifier' -slug: Web/JavaScript/Reference/Errors/Reserved_identifier -tags: - - Error - - Errors - - JavaScript - - SyntaxError -translation_of: Web/JavaScript/Reference/Errors/Reserved_identifier ---- -<div>{{jsSidebar("Errors")}}</div> - -<h2 id="メッセージ">メッセージ</h2> - -<pre class="syntaxbox">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="/ja/docs/Web/JavaScript/Reference/Lexical_grammar#キーワード">予約語</a>を識別子として使用した場合、エラーをスローします。これらは strict モードと通常モードの双方で予約されています:</p> - -<ul> - <li><code>enum</code></li> -</ul> - -<p>次のものは strict モードのコードでのみ予約されています:</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="Strict_モードと_非_Strict_モードで予約されているキーワード">Strict モードと 非 Strict モードで予約されているキーワード</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>strict モードのコードでは、より多くの識別子が予約されています。</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="/ja/docs/Web/JavaScript/Reference/Statements/let">let</a></code> や <code><a href="/ja/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> +---
+title: 'SyntaxError: "x" is a reserved identifier'
+slug: Web/JavaScript/Reference/Errors/Reserved_identifier
+tags:
+ - Error
+ - Errors
+ - JavaScript
+ - SyntaxError
+translation_of: Web/JavaScript/Reference/Errors/Reserved_identifier
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<h2 id="メッセージ">メッセージ</h2>
+
+<pre class="syntaxbox">SyntaxError: "x" is a reserved identifier (Firefox)
+SyntaxError: Unexpected reserved word (Chrome)</pre>
+
+<h2 id="Error_type">エラーの種類</h2>
+
+<p>{{jsxref("SyntaxError")}}</p>
+
+<h2 id="何がうまくいかなかったのか?">何がうまくいかなかったのか?</h2>
+
+<p><a href="/ja/docs/Web/JavaScript/Reference/Lexical_grammar#キーワード">予約語</a>を識別子として使用した場合、エラーをスローします。これらは strict モードと通常モードの双方で予約されています:</p>
+
+<ul>
+ <li><code>enum</code></li>
+</ul>
+
+<p>次のものは strict モードのコードでのみ予約されています:</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="Strict_モードと_非_Strict_モードで予約されているキーワード">Strict モードと 非 Strict モードで予約されているキーワード</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>strict モードのコードでは、より多くの識別子が予約されています。</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="/ja/docs/Web/JavaScript/Reference/Statements/let">let</a></code> や <code><a href="/ja/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/ja/web/javascript/reference/errors/resulting_string_too_large/index.html b/files/ja/web/javascript/reference/errors/resulting_string_too_large/index.html index f72ba9db84..ae4809f1fe 100644 --- a/files/ja/web/javascript/reference/errors/resulting_string_too_large/index.html +++ b/files/ja/web/javascript/reference/errors/resulting_string_too_large/index.html @@ -1,52 +1,52 @@ ---- -title: 'RangeError: repeat count must be less than infinity' -slug: Web/JavaScript/Reference/Errors/Resulting_string_too_large -tags: -- Error -- Errors -- JavaScript -- RangeError -translation_of: Web/JavaScript/Reference/Errors/Resulting_string_too_large ---- -<div>{{jsSidebar("Errors")}}</div> - -<p>JavaScript の例外 "repeat count must be less than infinity" は、 {{jsxref("String.prototype.repeat()")}} メソッドが使用され、 <code>count</code> 引数が無限大である場合に発生します。</p> - -<h2 id="Message">メッセージ</h2> - -<pre class="brush: js">RangeError: argument out of range (Edge) -RangeError: repeat count must be less than infinity and not overflow maximum string size (Firefox) -RangeError: Invalid count value (Chrome) -</pre> - -<h2 id="Error_type">エラー種別</h2> - -<p>{{jsxref("RangeError")}}</p> - -<h2 id="What_went_wrong">原因</h2> - -<p>{{jsxref("String.prototype.repeat()")}} メソッドを使用しています。<code>count</code> 引数は、文字列の繰り返し回数を指定します。 これは 0 から正の {{jsxref("Infinity")}} 未満の値である必要があり、負の数は使用できません。有効値の範囲は [0, +∞) のように表現することができます。</p> - -<p>結果の文字列は、文字列サイズの最大値以上にはできません。これは JavaScript エンジンによって異なります。 Firefox (SpiderMonkey) の最大文字列数は、 2<sup>28</sup> -1 (<code>0xFFFFFFF)</code>です。</p> - -<h2 id="Examples">例</h2> - -<h3 id="Invalid_cases">無効なケース</h3> - -<pre class="brush: js example-bad">'abc'.repeat(Infinity); // RangeError -'a'.repeat(2**28); // RangeError -</pre> - -<h3 id="Valid_cases">有効なケース</h3> - -<pre class="brush: js example-good">'abc'.repeat(0); // '' -'abc'.repeat(1); // 'abc' -'abc'.repeat(2); // 'abcabc' -'abc'.repeat(3.5); // 'abcabcabc' (count は整数に変換されます) -</pre> - -<h2 id="See_also">関連情報</h2> - -<ul> - <li>{{jsxref("String.prototype.repeat()")}}</li> -</ul> +---
+title: 'RangeError: repeat count must be less than infinity'
+slug: Web/JavaScript/Reference/Errors/Resulting_string_too_large
+tags:
+- Error
+- Errors
+- JavaScript
+- RangeError
+translation_of: Web/JavaScript/Reference/Errors/Resulting_string_too_large
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<p>JavaScript の例外 "repeat count must be less than infinity" は、 {{jsxref("String.prototype.repeat()")}} メソッドが使用され、 <code>count</code> 引数が無限大である場合に発生します。</p>
+
+<h2 id="Message">エラーメッセージ</h2>
+
+<pre class="brush: js">RangeError: argument out of range (Edge)
+RangeError: repeat count must be less than infinity and not overflow maximum string size (Firefox)
+RangeError: Invalid count value (Chrome)
+</pre>
+
+<h2 id="Error_type">エラーの種類</h2>
+
+<p>{{jsxref("RangeError")}}</p>
+
+<h2 id="What_went_wrong">エラーの原因</h2>
+
+<p>{{jsxref("String.prototype.repeat()")}} メソッドを使用しています。<code>count</code> 引数は、文字列の繰り返し回数を指定します。 これは 0 から正の {{jsxref("Infinity")}} 未満の値である必要があり、負の数は使用できません。有効値の範囲は [0, +∞) のように表現することができます。</p>
+
+<p>結果の文字列は、文字列サイズの最大値以上にはできません。これは JavaScript エンジンによって異なります。 Firefox (SpiderMonkey) の最大文字列数は、 2<sup>28</sup> -1 (<code>0xFFFFFFF)</code>です。</p>
+
+<h2 id="Examples">例</h2>
+
+<h3 id="Invalid_cases">無効なケース</h3>
+
+<pre class="brush: js example-bad">'abc'.repeat(Infinity); // RangeError
+'a'.repeat(2**28); // RangeError
+</pre>
+
+<h3 id="Valid_cases">有効な場合</h3>
+
+<pre class="brush: js example-good">'abc'.repeat(0); // ''
+'abc'.repeat(1); // 'abc'
+'abc'.repeat(2); // 'abcabc'
+'abc'.repeat(3.5); // 'abcabcabc' (count は整数に変換されます)
+</pre>
+
+<h2 id="See_also">関連情報</h2>
+
+<ul>
+ <li>{{jsxref("String.prototype.repeat()")}}</li>
+</ul>
diff --git a/files/ja/web/javascript/reference/errors/stmt_after_return/index.html b/files/ja/web/javascript/reference/errors/stmt_after_return/index.html index e41eaa6b86..fb40ebd2ea 100644 --- a/files/ja/web/javascript/reference/errors/stmt_after_return/index.html +++ b/files/ja/web/javascript/reference/errors/stmt_after_return/index.html @@ -1,81 +1,81 @@ ---- -title: 'Warning: unreachable code after return statement' -slug: Web/JavaScript/Reference/Errors/Stmt_after_return -tags: - - JavaScript - - Warning - - エラー - - 警告 -translation_of: Web/JavaScript/Reference/Errors/Stmt_after_return ---- -<div>{{jsSidebar("Errors")}}</div> - -<p>JavaScript の警告 "unreachable code after return statement" は、 {{jsxref("Statements/return", "return")}} 文の後で式を使用したり、セミコロンのない return 文を使用して、その直後に式を置いたりした場合に発生します。</p> - -<h2 id="Message" name="Message">メッセージ</h2> - -<pre class="syntaxbox">Warning: unreachable code after return statement (Firefox) -</pre> - -<h2 id="Error_type" name="Error_type">エラー種別</h2> - -<p>警告</p> - -<h2 id="What_went_wrong" name="What_went_wrong">原因</h2> - -<p>unreachable code after a return statement は、以下のような場合に発生することがあります。</p> - -<ul> - <li>{{jsxref("Statements/return", "return")}} 文の後で式を使用している場合</li> - <li>セミコロンがない return 文の直後に式を置いている場合</li> -</ul> - -<p>有効な <code>return</code> 文の後に式がある場合、警告は <code>return</code> 文の後のコードには到達しない、つまり決して実行されないことを表します。</p> - -<p><code>return</code> 文の後にセミコロンをつけるべきなのはなぜでしょうか。セミコロンがない <code>return</code> 文の場合、開発者が次の行にある文を返そうとしているのか、処理を停止して戻ろうとしているのかが不明確になってしまいます。この警告は、 <code>return</code> 文の書かれ方にあいまいさがあることを示しています。</p> - -<p>以下の文の場合、セミコロンがない場合の return の警告は表示されません。</p> - -<ul> - <li>{{jsxref("Statements/throw", "throw")}}</li> - <li>{{jsxref("Statements/break", "break")}}</li> - <li>{{jsxref("Statements/var", "var")}}</li> - <li>{{jsxref("Statements/function", "function")}}</li> -</ul> - -<h2 id="Examples" name="Examples">例</h2> - -<h3 id="Invalid_cases" name="Invalid_cases">無効な場合</h3> - -<pre class="brush: js example-bad">function f() { - var x = 3; - x += 4; - return x; // return は直ちに関数を終了します。 - x -= 3; // そのため、この行は実行されません。到達不可能です。 -} - -function f() { - return // これは `return;` のように扱われます。 - 3 + 4; // そのため、関数を抜け出し、この行には決して到達しません。 -} -</pre> - -<h3 id="Valid_cases" name="Valid_cases">妥当な場合</h3> - -<pre class="brush: js example-good">function f() { - var x = 3; - x += 4; - x -= 3; - return x; // OK: すべての式の後に return があります。 -} - -function f() { - return 3 + 4 // OK: 同じ行に式があるセミコロンなしの return です。 -} -</pre> - -<h2 id="See_also" name="See_also">関連情報</h2> - -<ul> - <li>{{jsxref("Statements/return", "自動セミコロン挿入", "#Automatic_Semicolon_Insertion", 1)}}</li> -</ul> +---
+title: 'Warning: unreachable code after return statement'
+slug: Web/JavaScript/Reference/Errors/Stmt_after_return
+tags:
+ - JavaScript
+ - Warning
+ - エラー
+ - 警告
+translation_of: Web/JavaScript/Reference/Errors/Stmt_after_return
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<p>JavaScript の警告 "unreachable code after return statement" は、 {{jsxref("Statements/return", "return")}} 文の後で式を使用したり、セミコロンのない return 文を使用して、その直後に式を置いたりした場合に発生します。</p>
+
+<h2 id="Message">エラーメッセージ</h2>
+
+<pre class="brush: js">Warning: unreachable code after return statement (Firefox)
+</pre>
+
+<h2 id="Error_type">エラーの種類</h2>
+
+<p>警告</p>
+
+<h2 id="What_went_wrong">エラーの原因</h2>
+
+<p>unreachable code after a return statement は、以下のような場合に発生することがあります。</p>
+
+<ul>
+ <li>{{jsxref("Statements/return", "return")}} 文の後で式を使用している場合</li>
+ <li>セミコロンがない return 文の直後に式を置いている場合</li>
+</ul>
+
+<p>有効な <code>return</code> 文の後に式がある場合、警告は <code>return</code> 文の後のコードには到達しない、つまり決して実行されないことを表します。</p>
+
+<p><code>return</code> 文の後にセミコロンをつけるべきなのはなぜでしょうか。セミコロンがない <code>return</code> 文の場合、開発者が次の行にある文を返そうとしているのか、処理を停止して戻ろうとしているのかが不明確になってしまいます。この警告は、 <code>return</code> 文の書かれ方にあいまいさがあることを示しています。</p>
+
+<p>以下の文の場合、セミコロンがない場合の return の警告は表示されません。</p>
+
+<ul>
+ <li>{{jsxref("Statements/throw", "throw")}}</li>
+ <li>{{jsxref("Statements/break", "break")}}</li>
+ <li>{{jsxref("Statements/var", "var")}}</li>
+ <li>{{jsxref("Statements/function", "function")}}</li>
+</ul>
+
+<h2 id="Examples">例</h2>
+
+<h3 id="Invalid_cases">無効な場合</h3>
+
+<pre class="brush: js example-bad">function f() {
+ var x = 3;
+ x += 4;
+ return x; // return は直ちに関数を終了します。
+ x -= 3; // そのため、この行は実行されません。到達不可能です。
+}
+
+function f() {
+ return // これは `return;` のように扱われます。
+ 3 + 4; // そのため、関数を抜け出し、この行には決して到達しません。
+}
+</pre>
+
+<h3 id="Valid_cases">妥当な場合</h3>
+
+<pre class="brush: js example-good">function f() {
+ var x = 3;
+ x += 4;
+ x -= 3;
+ return x; // OK: すべての式の後に return があります。
+}
+
+function f() {
+ return 3 + 4 // OK: 同じ行に式があるセミコロンなしの return です。
+}
+</pre>
+
+<h2 id="See_also">関連情報</h2>
+
+<ul>
+ <li>{{jsxref("Statements/return", "自動セミコロン挿入", "#Automatic_Semicolon_Insertion", 1)}}</li>
+</ul>
diff --git a/files/ja/web/javascript/reference/errors/strict_non_simple_params/index.html b/files/ja/web/javascript/reference/errors/strict_non_simple_params/index.html index db18025e07..fc033a3b76 100644 --- a/files/ja/web/javascript/reference/errors/strict_non_simple_params/index.html +++ b/files/ja/web/javascript/reference/errors/strict_non_simple_params/index.html @@ -1,111 +1,111 @@ ---- -title: 'SyntaxError: "use strict" not allowed in function with non-simple parameters' -slug: Web/JavaScript/Reference/Errors/Strict_Non_Simple_Params -tags: - - Errors - - JavaScript - - TypeError -translation_of: Web/JavaScript/Reference/Errors/Strict_Non_Simple_Params ---- -<div>{{jsSidebar("Errors")}}</div> - -<h2 id="メッセージ">メッセージ</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="エラータイプ">エラータイプ</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>ECMAScript 仕様に則って、このような関数の先頭では <code>"use strict"</code> を使用できません。</p> - -<h2 id="例">例</h2> - -<h3 id="Function_ステートメント">Function ステートメント</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="/ja/docs/Web/JavaScript/Reference/Strict_mode">strict モード</a>にしたい、かつスクリプト全体、またはエンクロージャー関数が strict モードになってもよいなら、<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="Function_式">Function 式</h3> - -<p>function 式では、別の回避策をとることができます:</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) => { - // 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 = (() => { - "use strict"; - return (...args) => { - return this.run(args); - }; -})(); -</pre> - -<h2 id="関連項目">関連項目</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> +---
+title: 'SyntaxError: "use strict" not allowed in function with non-simple parameters'
+slug: Web/JavaScript/Reference/Errors/Strict_Non_Simple_Params
+tags:
+ - Errors
+ - JavaScript
+ - TypeError
+translation_of: Web/JavaScript/Reference/Errors/Strict_Non_Simple_Params
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<h2 id="メッセージ">メッセージ</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">エラーの種類</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>ECMAScript 仕様に則って、このような関数の先頭では <code>"use strict"</code> を使用できません。</p>
+
+<h2 id="例">例</h2>
+
+<h3 id="Function_ステートメント">Function ステートメント</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="/ja/docs/Web/JavaScript/Reference/Strict_mode">strict モード</a>にしたい、かつスクリプト全体、またはエンクロージャー関数が strict モードになってもよいなら、<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="Function_式">Function 式</h3>
+
+<p>function 式では、別の回避策をとることができます:</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) => {
+ // 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 = (() => {
+ "use strict";
+ return (...args) => {
+ return this.run(args);
+ };
+})();
+</pre>
+
+<h2 id="関連項目">関連項目</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/ja/web/javascript/reference/errors/undeclared_var/index.html b/files/ja/web/javascript/reference/errors/undeclared_var/index.html index e89391c3bf..7834bc2df9 100644 --- a/files/ja/web/javascript/reference/errors/undeclared_var/index.html +++ b/files/ja/web/javascript/reference/errors/undeclared_var/index.html @@ -11,7 +11,7 @@ translation_of: Web/JavaScript/Reference/Errors/Undeclared_var --- <div>{{jsSidebar("Errors")}}</div> -<p>JavaScript の <a href="/en-US/docs/Web/JavaScript/Reference/Strict_mode">strict モード</a>独自の例外 "Assignment to undeclated variable" は、値が宣言されていない変数に代入されたときに発生します。</p> +<p>JavaScript の <a href="/ja/docs/Web/JavaScript/Reference/Strict_mode">strict モード</a>独自の例外 "Assignment to undeclated variable" は、値が宣言されていない変数に代入されたときに発生します。</p> <h2 id="Message">エラーメッセージ</h2> @@ -53,7 +53,7 @@ ReferenceError: Variable undefined in strict mode (Edge) foo(); // ReferenceError: assignment to undeclared variable bar </pre> -<h3 id="Valid_cases">有効なケース</h3> +<h3 id="Valid_cases">有効な場合</h3> <p>"bar" を宣言済みの変数にするために、その前に <code><a href="/ja/docs/Web/JavaScript/Reference/Statements/var">var</a></code> キーワードを追加します。</p> diff --git a/files/ja/web/javascript/reference/errors/undefined_prop/index.html b/files/ja/web/javascript/reference/errors/undefined_prop/index.html index cb2ec02f1a..fa5c1e8067 100644 --- a/files/ja/web/javascript/reference/errors/undefined_prop/index.html +++ b/files/ja/web/javascript/reference/errors/undefined_prop/index.html @@ -1,59 +1,59 @@ ---- -title: 'ReferenceError: reference to undefined property "x"' -slug: Web/JavaScript/Reference/Errors/Undefined_prop -tags: - - Errors - - JavaScript - - ReferenceError - - Strict Mode -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="/ja/docs/Web/JavaScript/Reference/Strict_mode">strict モード</a> でのみ、{{jsxref("ReferenceError")}} の警告が出ます。</p> - -<h2 id="何がうまくいかなかったのか?">何がうまくいかなかったのか?</h2> - -<p>存在しないオブジェクトのプロパティにアクセスしようとしています。プロパティにアクセスする方法は 2 つあります。詳細については、<a href="/ja/docs/Web/JavaScript/Reference/Operators/Property_Accessors">メンバー演算子</a>参照ページを見てください。</p> - -<p>未定義プロパティを参照することによるエラーは、<a href="/ja/docs/Web/JavaScript/Reference/Strict_mode">strict モードのコード</a>でのみ発生します。非 strict コードでは、暗黙的に無視されます。</p> - -<h2 id="例">例</h2> - -<h3 id="無効なケース">無効なケース</h3> - -<p>このケースでは、"bar" は未定義のプロパティです。</p> - -<pre class="brush: js example-bad">"use strict"; - -var foo = {}; -foo.bar; // ReferenceError: reference to undefined property "bar" -</pre> - -<h3 id="有効なケース">有効なケース</h3> - -<p>エラーを避けるには、"bar" プロパティを定義するか、使用する前に "bar" プロパティが存在するか確認する必要があります(たとえば、{{jsxref("Object.prototype.hasOwnProperty()")}} メソッドを使用します)。</p> - -<pre class="brush: js example-good">"use strict"; - -var foo = {}; - -foo.bar = "moon"; -console.log(foo.bar); // "moon" - -if (foo.hasOwnProperty("bar") { - console.log(foo.bar); -}</pre> - -<h2 id="関連項目">関連項目</h2> - -<ul> - <li><a href="/ja/docs/Web/JavaScript/Reference/Strict_mode">Strict モード</a></li> -</ul> +---
+title: 'ReferenceError: reference to undefined property "x"'
+slug: Web/JavaScript/Reference/Errors/Undefined_prop
+tags:
+ - Errors
+ - JavaScript
+ - ReferenceError
+ - Strict Mode
+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="Error_type">エラーの種類</h2>
+
+<p><a href="/ja/docs/Web/JavaScript/Reference/Strict_mode">strict モード</a> でのみ、{{jsxref("ReferenceError")}} の警告が出ます。</p>
+
+<h2 id="何がうまくいかなかったのか?">何がうまくいかなかったのか?</h2>
+
+<p>存在しないオブジェクトのプロパティにアクセスしようとしています。プロパティにアクセスする方法は 2 つあります。詳細については、<a href="/ja/docs/Web/JavaScript/Reference/Operators/Property_Accessors">メンバー演算子</a>参照ページを見てください。</p>
+
+<p>未定義プロパティを参照することによるエラーは、<a href="/ja/docs/Web/JavaScript/Reference/Strict_mode">strict モードのコード</a>でのみ発生します。非 strict コードでは、暗黙的に無視されます。</p>
+
+<h2 id="例">例</h2>
+
+<h3 id="無効なケース">無効なケース</h3>
+
+<p>このケースでは、"bar" は未定義のプロパティです。</p>
+
+<pre class="brush: js example-bad">"use strict";
+
+var foo = {};
+foo.bar; // ReferenceError: reference to undefined property "bar"
+</pre>
+
+<h3 id="有効なケース">有効なケース</h3>
+
+<p>エラーを避けるには、"bar" プロパティを定義するか、使用する前に "bar" プロパティが存在するか確認する必要があります(たとえば、{{jsxref("Object.prototype.hasOwnProperty()")}} メソッドを使用します)。</p>
+
+<pre class="brush: js example-good">"use strict";
+
+var foo = {};
+
+foo.bar = "moon";
+console.log(foo.bar); // "moon"
+
+if (foo.hasOwnProperty("bar") {
+ console.log(foo.bar);
+}</pre>
+
+<h2 id="関連項目">関連項目</h2>
+
+<ul>
+ <li><a href="/ja/docs/Web/JavaScript/Reference/Strict_mode">Strict モード</a></li>
+</ul>
diff --git a/files/ja/web/javascript/reference/errors/unexpected_token/index.html b/files/ja/web/javascript/reference/errors/unexpected_token/index.html index df9f554ab2..47efb24bf6 100644 --- a/files/ja/web/javascript/reference/errors/unexpected_token/index.html +++ b/files/ja/web/javascript/reference/errors/unexpected_token/index.html @@ -1,81 +1,83 @@ ---- -title: 'SyntaxError: Unexpected token' -slug: Web/JavaScript/Reference/Errors/Unexpected_token -tags: - - Error - - Errors - - JavaScript - - SyntaxError -translation_of: Web/JavaScript/Reference/Errors/Unexpected_token ---- -<div>{{jsSidebar("Errors")}}</div> - -<h2 id="Message" name="Message">メッセージ</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 '=>' after argument list, got "x" -</pre> - -<h2 id="Error_type" name="Error_type">エラー種別</h2> - -<p>{{jsxref("SyntaxError")}}</p> - -<h2 id="What_went_wrong" name="What_went_wrong">エラーの原因</h2> - -<p>特定の言語構造が予想されている箇所に、ほかのものが提供されています。これは単純なタイプミスの可能性があります。</p> - -<h2 id="Examples" name="Examples">例</h2> - -<h3 id="Expression_expected" name="Expression_expected">式が期待される</h3> - -<p>たとえば関数を呼び出すとき、末尾のカンマは許可されていません。</p> - -<pre class="brush: js example-bad">for (let i = 0; i < 5,; ++i) { - console.log(i); -} -// SyntaxError: expected expression, got ')' -</pre> - -<p>正しくは、カンマを省略するか、他の式を追加するかしてください。</p> - -<pre class="brush: js example-good">for (let i = 0; i < 5; ++i) { - console.log(i); -} -</pre> - -<h3 id="Not_enough_brackets" name="Not_enough_brackets">括弧の不足</h3> - -<p>時々、 <code>if</code> 文を囲む括弧を忘れることがあります。</p> - -<pre class="brush: js example-bad line-numbers language-js">function round(n, upperBound, lowerBound){ - if(n > upperBound) || (n < lowerBound){ - throw 'Number ' + String(n) + ' is more than ' + String(upperBound) + ' or less than ' + String(lowerBound); - }else if(n < ((upperBound + lowerBound)/2)){ - return lowerBound; - }else{ - return upperBound; - } -} // SyntaxError: expected expression, got '||'</pre> - -<p>最初は括弧が正しく見えますが、 <code>||</code> が括弧の外にあることに注意してください。 <code>||</code> の周囲を括弧で囲むように修正してください。</p> - -<pre class="brush: js example-good">function round(n, upperBound, lowerBound){ - if((n > upperBound) || (n < lowerBound)){ - throw 'Number ' + String(n) + ' is more than ' + String(upperBound) + ' or less than ' + String(lowerBound); - }else if(n < ((upperBound + lowerBound)/2)){ - return lowerBound; - }else{ - return upperBound; - } -} -</pre> - -<h2 id="See_also" name="See_also">関連情報</h2> - -<ul> - <li>{{jsxref("SyntaxError")}}</li> -</ul> +---
+title: 'SyntaxError: Unexpected token'
+slug: Web/JavaScript/Reference/Errors/Unexpected_token
+tags:
+- Error
+- Errors
+- JavaScript
+- SyntaxError
+translation_of: Web/JavaScript/Reference/Errors/Unexpected_token
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<p>JavaScript の例外 "unexpected token" は、特定の言語構造が期待されているのに、それ以外のものが提供されている場合に発生します。単純なタイプミスかもしれません。</p>
+
+<h2 id="Message">エラーメッセージ</h2>
+
+<pre class="brush: js">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 '=>' after argument list, got "x"
+</pre>
+
+<h2 id="Error_type">エラーの種類</h2>
+
+<p>{{jsxref("SyntaxError")}}</p>
+
+<h2 id="What_went_wrong">エラーの原因</h2>
+
+<p>特定の言語構造が予想されている箇所に、ほかのものが提供されています。これは単純なタイプミスの可能性があります。</p>
+
+<h2 id="Examples">例</h2>
+
+<h3 id="Expression_expected">式が期待される</h3>
+
+<p>たとえば関数を呼び出すとき、末尾のカンマは許可されていません。</p>
+
+<pre class="brush: js example-bad">for (let i = 0; i < 5,; ++i) {
+ console.log(i);
+}
+// SyntaxError: expected expression, got ')'
+</pre>
+
+<p>正しくは、カンマを省略するか、他の式を追加するかしてください。</p>
+
+<pre class="brush: js example-good">for (let i = 0; i < 5; ++i) {
+ console.log(i);
+}
+</pre>
+
+<h3 id="Not_enough_brackets">括弧の不足</h3>
+
+<p>時々、 <code>if</code> 文を囲む括弧を忘れることがあります。</p>
+
+<pre class="brush: js example-bad line-numbers language-js">function round(n, upperBound, lowerBound){
+ if(n > upperBound) || (n < lowerBound){
+ throw 'Number ' + String(n) + ' is more than ' + String(upperBound) + ' or less than ' + String(lowerBound);
+ }else if(n < ((upperBound + lowerBound)/2)){
+ return lowerBound;
+ }else{
+ return upperBound;
+ }
+} // SyntaxError: expected expression, got '||'</pre>
+
+<p>最初は括弧が正しく見えますが、 <code>||</code> が括弧の外にあることに注意してください。 <code>||</code> の周囲を括弧で囲むように修正してください。</p>
+
+<pre class="brush: js example-good">function round(n, upperBound, lowerBound){
+ if((n > upperBound) || (n < lowerBound)){
+ throw 'Number ' + String(n) + ' is more than ' + String(upperBound) + ' or less than ' + String(lowerBound);
+ }else if(n < ((upperBound + lowerBound)/2)){
+ return lowerBound;
+ }else{
+ return upperBound;
+ }
+}
+</pre>
+
+<h2 id="See_also">関連情報</h2>
+
+<ul>
+ <li>{{jsxref("SyntaxError")}}</li>
+</ul>
diff --git a/files/ja/web/javascript/reference/errors/unexpected_type/index.html b/files/ja/web/javascript/reference/errors/unexpected_type/index.html index bf43a41039..3ff329c689 100644 --- a/files/ja/web/javascript/reference/errors/unexpected_type/index.html +++ b/files/ja/web/javascript/reference/errors/unexpected_type/index.html @@ -1,77 +1,76 @@ ---- -title: 'TypeError: "x" is (not) "y"' -slug: Web/JavaScript/Reference/Errors/Unexpected_type -tags: - - Error - - Errors - - JavaScript - - TypeError -translation_of: Web/JavaScript/Reference/Errors/Unexpected_type ---- -<div>{{jsSidebar("Errors")}}</div> - -<p>JavaScript の例外 "<em>x</em> is (not) <em>y</em>" は、予期しない型があったときに発生します。よくあるのは、予期せず {{jsxref("undefined")}} または {{jsxref("null")}} の値があった場合です。</p> - -<h2 id="Message" name="Message">メッセージ</h2> - -<pre class="syntaxbox notranslate">TypeError: Unable to get property {x} of undefined or null reference (Edge) -TypeError: "x" is (not) "y" (Firefox) - -例: -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" name="Error_type">エラー種別</h2> - -<p>{{jsxref("TypeError")}}。</p> - -<h2 id="What_went_wrong" name="What_went_wrong">エラーの原因</h2> - -<p>予期しない型がありました。これは {{jsxref("undefined")}} または {{jsxref("null")}} の値でしばしば発生します。</p> - -<p>また、{{jsxref("Object.create()")}} や {{jsxref("Symbol.keyFor()")}} のようなある種のメソッドは、特定の型を要求し、それを提供する必要があります。</p> - -<h2 id="Examples" name="Examples">例</h2> - -<h3 id="Invalid_cases" name="Invalid_cases">無効な場合</h3> - -<pre class="brush: js example-bad notranslate">// undefined と null の場合、substring メソッドは動作しません。 -var foo = undefined; -foo.substring(1); // TypeError: foo is undefined - -var foo = null; -foo.substring(1); // TypeError: foo is null - - -// ある種のメソッドでは、特定の型が求められることがあります。 -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" name="Fixing_the_issue">問題の修正</h3> - -<p>null ポインターを <code>undefined</code> 値に修正するには、次のように <a href="/ja/docs/Web/JavaScript/Reference/Operators/typeof">typeof</a> 演算子を用いて行うことができます。</p> - -<pre class="brush: js notranslate">if (foo !== undefined) { - // これで、 foo が定義されていることがわかるので、実行することができます。 -} - -if (typeof foo !== 'undefined') { - // 同じというのは良い考えですが、この実装を使わないでください。 - 本当の - // undefined の値と未宣言の変数が混同されて問題が発生する可能性があります。 -} -</pre> - -<h2 id="See_also" name="See_also">関連情報</h2> - -<ul> - <li>{{jsxref("undefined")}}</li> - <li>{{jsxref("null")}}</li> -</ul> +---
+title: 'TypeError: "x" is (not) "y"'
+slug: Web/JavaScript/Reference/Errors/Unexpected_type
+tags:
+- Error
+- Errors
+- JavaScript
+- TypeError
+translation_of: Web/JavaScript/Reference/Errors/Unexpected_type
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<p>JavaScript の例外 "<em>x</em> is (not) <em>y</em>" は、予期しない型があったときに発生します。よくあるのは、予期せず {{jsxref("undefined")}} または {{jsxref("null")}} の値があった場合です。</p>
+
+<h2 id="Message">エラーメッセージ</h2>
+
+<pre class="brush: js">TypeError: Unable to get property {x} of undefined or null reference (Edge)
+TypeError: "x" is (not) "y" (Firefox)
+
+例:
+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">エラーの種類</h2>
+
+<p>{{jsxref("TypeError")}}</p>
+
+<h2 id="What_went_wrong">エラーの原因</h2>
+
+<p>予期しない型がありました。これは {{jsxref("undefined")}} または {{jsxref("null")}} の値でしばしば発生します。</p>
+
+<p>また、{{jsxref("Object.create()")}} や {{jsxref("Symbol.keyFor()")}} のようなある種のメソッドは、特定の型を要求し、それを提供する必要があります。</p>
+
+<h2 id="Examples">例</h2>
+
+<h3 id="Invalid_cases" >無効な場合</h3>
+
+<pre class="brush: js example-bad notranslate">// undefined と null の場合、substring メソッドは動作しません。
+var foo = undefined;
+foo.substring(1); // TypeError: foo is undefined
+
+var foo = null;
+foo.substring(1); // TypeError: foo is null
+
+// ある種のメソッドでは、特定の型が求められることがあります。
+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">問題の修正</h3>
+
+<p>null ポインターを <code>undefined</code> 値に修正するには、次のように <a href="/ja/docs/Web/JavaScript/Reference/Operators/typeof">typeof</a> 演算子を用いて行うことができます。</p>
+
+<pre class="brush: js">if (foo !== undefined) {
+ // これで、 foo が定義されていることがわかるので、実行することができます。
+}
+
+if (typeof foo !== 'undefined') {
+ // 同じというのは良い考えですが、この実装を使わないでください。 - 本当の
+ // undefined の値と未宣言の変数が混同されて問題が発生する可能性があります。
+}
+</pre>
+
+<h2 id="See_also">関連情報</h2>
+
+<ul>
+ <li>{{jsxref("undefined")}}</li>
+ <li>{{jsxref("null")}}</li>
+</ul>
diff --git a/files/ja/web/javascript/reference/errors/unnamed_function_statement/index.html b/files/ja/web/javascript/reference/errors/unnamed_function_statement/index.html index 35abd0a3f6..4bdef90636 100644 --- a/files/ja/web/javascript/reference/errors/unnamed_function_statement/index.html +++ b/files/ja/web/javascript/reference/errors/unnamed_function_statement/index.html @@ -2,33 +2,36 @@ title: 'SyntaxError: function statement requires a name' slug: Web/JavaScript/Reference/Errors/Unnamed_function_statement tags: - - Error - - Errors - - JavaScript - - SyntaxError +- Error +- Errors +- JavaScript +- SyntaxError translation_of: Web/JavaScript/Reference/Errors/Unnamed_function_statement --- <div>{{jsSidebar("Errors")}}</div> -<h2 id="メッセージ">メッセージ</h2> +<p>JavaScript の例外 "function statement requires a name" は、名前が必要な<a href="/ja/docs/Web/JavaScript/Reference/Statements/function">関数文</a>がコードの中にあった場合に発生します。</p> -<pre class="syntaxbox">SyntaxError: function statement requires a name [Firefox] +<h2 id="Message">エラーメッセージ</h2> + +<pre class="brush: js">Syntax Error: Expected identifier (Edge) +SyntaxError: function statement requires a name [Firefox] SyntaxError: Unexpected token ( [Chrome] </pre> -<h2 id="エラータイプ">エラータイプ</h2> +<h2 id="Error_type">エラーの種類</h2> <p>{{jsxref("SyntaxError")}}</p> <h2 id="何がうまくいかなかったのか?">何がうまくいかなかったのか?</h2> -<p>コードに名前が必要な <a href="/ja/docs/Web/JavaScript/Reference/Statements/function">function ステートメント</a>があります。関数がどのように定義されているか、関数の名前を指定する必要があるかどうか、または問題の関数が関数式、{{Glossary("IIFE")}} である必要があるかどうか、 コードがこのコンテクストに正しく置かれているかどうかを確認する必要があります。</p> +<p>コードに名前が必要な<a href="/ja/docs/Web/JavaScript/Reference/Statements/function">関数文</a>があります。関数がどのように定義されているか、関数の名前を指定する必要があるかどうか、または問題の関数が関数式、<a href="/ja/docs/Glossary/IIFE">IIFE</a> である必要があるかどうか、 コードがこのコンテクストに正しく置かれているかどうかを確認する必要があります。</p> <h2 id="例">例</h2> -<h3 id="ステートメント_vs_式">ステートメント vs 式</h3> +<h3 id="Statements_vs_expressions">文と式</h3> -<p><em><a href="/ja/docs/Web/JavaScript/Reference/Statements/function">function ステートメント</a></em> (または <em>function 宣言</em>) では名前が必要であり、これは動作しません:</p> +<p><em><a href="/ja/docs/Web/JavaScript/Reference/Statements/function">function 文</a></em> (または <em>function 宣言</em>) では名前が必要であり、次のものは動作しません。</p> <pre class="brush: js example-bad">function () { return 'Hello world'; @@ -36,19 +39,19 @@ SyntaxError: Unexpected token ( [Chrome] // SyntaxError: function statement requires a name </pre> -<p>代わりに、<a href="/ja/docs/Web/JavaScript/Reference/Operators/function">function 式</a> (代入) を使用できます:</p> +<p>代わりに、<a href="/ja/docs/Web/JavaScript/Reference/Operators/function">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> (即時実行関数式) を定義しようとしているのかもしれません。その場合は、もう少々括弧が必要です:</p> +<p>または、定義するとすぐに実行される <a href="https://en.wikipedia.org/wiki/Immediately-invoked_function_expression">IIFE</a> (即時実行関数式) を定義しようとしているのかもしれません。その場合は、もう少々括弧が必要です。</p> <pre class="brush: js example-good">(function () { })();</pre> -<h3 id="ラベル付けされた関数">ラベル付けされた関数</h3> +<h3 id="Labeled_functions">ラベル付けされた関数</h3> <p>関数 <a href="/ja/docs/Web/JavaScript/Reference/Statements/label">label</a> を使用している場合、<code>function</code> キーワードの後に関数名を指定する必要があります。これは動作しません:</p> @@ -60,7 +63,7 @@ SyntaxError: Unexpected token ( [Chrome] // SyntaxError: function statement requires a name </pre> -<p>たとえば、これは動作します:</p> +<p>たとえば、これは動作します。</p> <pre class="brush: js example-good">function Greeter() { german: function g() { @@ -68,7 +71,7 @@ SyntaxError: Unexpected token ( [Chrome] } }</pre> -<h3 id="オブジェクトのメソッド">オブジェクトのメソッド</h3> +<h3 id="Object_methods">オブジェクトのメソッド</h3> <p>オブジェクトのメソッドを作るならば、オブジェクトを作る必要があります。その場合、<code>function</code> キーワードの後に名前がない次の構文は有効です。</p> @@ -78,7 +81,7 @@ SyntaxError: Unexpected token ( [Chrome] } };</pre> -<h3 id="コールバック構文">コールバック構文</h3> +<h3 id="Callback_syntax">コールバック構文</h3> <p>コールバックを使用するときの構文もチェックします。大括弧とカンマが混同しやすいです。</p> @@ -92,7 +95,7 @@ SyntaxError: Unexpected token ( [Chrome] // SyntaxError: function statement requires a name </pre> -<p>正しくは:</p> +<p>正しくは、次の通りです。</p> <pre class="brush: json example-good">promise.then( function() { @@ -107,9 +110,9 @@ SyntaxError: Unexpected token ( [Chrome] <h2 id="関連項目">関連項目</h2> <ul> - <li><a href="/ja/docs/Web/JavaScript/Guide/Functions">Functions in the JavaScript Guide</a></li> - <li><a href="/ja/docs/Web/JavaScript/Reference/Statements/function">function statement</a></li> - <li><a href="/ja/docs/Web/JavaScript/Reference/Operators/function">function expression</a></li> - <li><a href="https://en.wikipedia.org/wiki/Immediately-invoked_function_expression">IIFE</a></li> - <li><a href="/ja/docs/Web/JavaScript/Reference/Statements/label">label</a></li> + <li><a href="/ja/docs/Web/JavaScript/Guide/Functions">関数 (JavaScript ガイド)</a></li> + <li><a href="/ja/docs/Web/JavaScript/Reference/Statements/function">関数文</a></li> + <li><a href="/ja/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="/ja/docs/Web/JavaScript/Reference/Statements/label">label</a></li> </ul> diff --git a/files/ja/web/javascript/reference/errors/unterminated_string_literal/index.html b/files/ja/web/javascript/reference/errors/unterminated_string_literal/index.html index be1022bda4..ab19a0f4a8 100644 --- a/files/ja/web/javascript/reference/errors/unterminated_string_literal/index.html +++ b/files/ja/web/javascript/reference/errors/unterminated_string_literal/index.html @@ -1,67 +1,71 @@ ---- -title: 'SyntaxError: unterminated string literal' -slug: Web/JavaScript/Reference/Errors/Unterminated_string_literal -tags: - - Errors - - JavaScript - - SyntaxError -translation_of: Web/JavaScript/Reference/Errors/Unterminated_string_literal ---- -<div>{{jsSidebar("Errors")}}</div> - -<h2 id="Message" name="Message">メッセージ</h2> - -<pre class="syntaxbox">SyntaxError: unterminated string literal -</pre> - -<h2 id="Error_type" name="Error_type">エラータイプ</h2> - -<p>{{jsxref("SyntaxError")}}</p> - -<h2 id="What_went_wrong" name="What_went_wrong">何がうまくいかなかったのか?</h2> - -<p>どこかに終端されていない {{jsxref("String")}} があります。文字列リテラルは、シングル(<code>'</code>)かダブル(<code>"</code>)のクオートで囲む必要があります。JavaScript は、シングルクオート文字列とダブルクオート文字列を区別しません。<a href="/ja/docs/Web/JavaScript/Reference/Global_Objects/String#エスケープシーケンス">エスケープシーケンス</a> はシングルクオートとダブルクオート、どちらの文字列でも動作します。このエラーを修正するためには、次の点をチェックしてください:</p> - -<ul> - <li>文字列リテラルのために、クオート(シングルかダブル)の開始と終了を行っている。</li> - <li>文字列リテラルを正しくエスケープしている。</li> - <li>文字列リテラルが複数行に分けられていない。</li> -</ul> - -<h2 id="Examples" name="Examples">例</h2> - -<h3 id="Multiple_lines" name="Multiple_lines">複数行</h3> - -<p>JavaScript では、次のように複数行にまたがる文字列を分割できません:</p> - -<pre class="brush: js example-bad">var longString = 'This is a very long string which needs - to wrap across multiple lines because - otherwise my code is unreadable.'; -// SyntaxError: unterminated string literal</pre> - -<p>替わりに、<a href="/ja/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators#Addition">+ 演算子</a> かバックスラッシュ、<a href="/ja/docs/Web/JavaScript/Reference/Template_literals">template literal</a> を使用します。<code>+</code> 演算子だと、次のようになります:</p> - -<pre class="brush: js example-good">var longString = 'This is a very long string which needs ' + - 'to wrap across multiple lines because ' + - 'otherwise my code is unreadable.'; -</pre> - -<p>または、文字列が次のように続くことを示すために、各行の終わりにバックスラッシュ文字("\")を使用することもできます。バックスラッシュの後に、(改行を除いて)スペースや文字、インデントを入れないようにしてください。そうしないと動作しません。バックスラッシュの場合、次のようになります:</p> - -<pre class="brush: js example-good">var longString = 'This is a very long string which needs \ -to wrap across multiple lines because \ -otherwise my code is unreadable.'; -</pre> - -<p>ECMAScript 2015 環境でサポートされている <a href="/ja/docs/Web/JavaScript/Reference/Template_literals">template literal</a> を使っても改行可能です。</p> - -<pre class="brush: js example-good">var longString = `This is a very long string which needs - to wrap across multiple lines because - otherwise my code is unreadable.`;</pre> - -<h2 id="See_also" name="See_also">関連情報</h2> - -<ul> - <li>{{jsxref("String")}}</li> - <li><a href="/ja/docs/Web/JavaScript/Reference/Template_literals">Template literal</a></li> -</ul> +---
+title: 'SyntaxError: unterminated string literal'
+slug: Web/JavaScript/Reference/Errors/Unterminated_string_literal
+tags:
+ - Error
+ - Errors
+ - JavaScript
+ - SyntaxError
+translation_of: Web/JavaScript/Reference/Errors/Unterminated_string_literal
+---
+<div>{{jsSidebar("Errors")}}</div>
+
+<p>JavaScript のエラー "unterminated string literal" は、どこかに終了していない<a href="/ja/docs/Web/JavaScript/Guide/Grammar_and_types#string_literals">文字列リテラル</a>があった場合に発生します。文字列リテラルは単一引用符 (<code>'</code>) または二重引用符 (<code>"</code>) で囲む必要があります。</p>
+
+<h2 id="Message">エラーメッセージ</h2>
+
+<pre class="brush: js">SyntaxError: Unterminated string constant (Edge)
+SyntaxError: unterminated string literal (Firefox)
+</pre>
+
+<h2 id="Error_type">エラーの種類</h2>
+
+<p>{{jsxref("SyntaxError")}}</p>
+
+<h2 id="What_went_wrong">エラーの原因</h2>
+
+<p>どこかに終端されていない<a href="/ja/docs/Web/JavaScript/Guide/Grammar_and_types#string_literals">文字列リテラル</a>があります。文字列リテラルは単一引用符 (<code>'</code>) または二重引用符 (<code>"</code>) で囲む必要があります。JavaScript は、単一引用符の文字列と二重引用符の文字列を区別しません。<a href="/ja/docs/Web/JavaScript/Reference/Global_Objects/String#escape_notation">エスケープシーケンス</a> は単一引用符と二重引用符、どちらの文字列でも動作します。このエラーを修正するためには、次の点をチェックしてください。</p>
+
+<ul>
+ <li>文字列リテラルのために、単一引用符または二重引用符の開始と終了を行っている。</li>
+ <li>文字列リテラルを正しくエスケープしている。</li>
+ <li>文字列リテラルが複数行に分けられていない。</li>
+</ul>
+
+<h2 id="Examples">例</h2>
+
+<h3 id="Multiple_lines">複数行</h3>
+
+<p>JavaScript では、次のように複数行にまたがる文字列を分割できません。</p>
+
+<pre class="brush: js example-bad">var longString = 'This is a very long string which needs
+ to wrap across multiple lines because
+ otherwise my code is unreadable.';
+// SyntaxError: unterminated string literal</pre>
+
+<p>代わりに、<a href="/ja/docs/Web/JavaScript/Reference/Operators/Addition">+ 演算子</a> かバックスラッシュ、<a href="/ja/docs/Web/JavaScript/Reference/Template_literals">テンプレートリテラル</a> を使用します。<code>+</code> 演算子の場合、次のようになります。</p>
+
+<pre class="brush: js example-good">var longString = 'This is a very long string which needs ' +
+ 'to wrap across multiple lines because ' +
+ 'otherwise my code is unreadable.';
+</pre>
+
+<p>または、文字列が次のように続くことを示すために、各行の終わりにバックスラッシュ文字("\")を使用することもできます。バックスラッシュの後に、 (改行を除いて) スペースや文字、インデントを入れないようにしてください。そうしないと動作しません。バックスラッシュの場合、次のようになります。</p>
+
+<pre class="brush: js example-good">var longString = 'This is a very long string which needs \
+to wrap across multiple lines because \
+otherwise my code is unreadable.';
+</pre>
+
+<p>ECMAScript 2015 環境でサポートされている<a href="/ja/docs/Web/JavaScript/Reference/Template_literals">テンプレートリテラル</a>を使っても改行可能です。</p>
+
+<pre class="brush: js example-good">var longString = `This is a very long string which needs
+ to wrap across multiple lines because
+ otherwise my code is unreadable.`;</pre>
+
+<h2 id="See_also">関連情報</h2>
+
+<ul>
+ <li><a href="/ja/docs/Web/JavaScript/Guide/Grammar_and_types#string_literals">文字列リテラル</a></li>
+ <li><a href="/ja/docs/Web/JavaScript/Reference/Template_literals">テンプレートリテラル</a></li>
+</ul>
diff --git a/files/ja/web/javascript/reference/errors/var_hides_argument/index.html b/files/ja/web/javascript/reference/errors/var_hides_argument/index.html index 8653e6da87..a189e60963 100644 --- a/files/ja/web/javascript/reference/errors/var_hides_argument/index.html +++ b/files/ja/web/javascript/reference/errors/var_hides_argument/index.html @@ -2,26 +2,29 @@ title: 'TypeError: variable "x" redeclares argument' slug: Web/JavaScript/Reference/Errors/Var_hides_argument tags: - - Errors - - JavaScript - - Strict Mode - - TypeError +- Error +- Errors +- JavaScript +- Strict Mode +- TypeError translation_of: Web/JavaScript/Reference/Errors/Var_hides_argument --- <div>{{jsSidebar("Errors")}}</div> -<h2 id="メッセージ">メッセージ</h2> +<p>JavaScript の <a href="/ja/docs/Web/JavaScript/Reference/Strict_mode">strict モード</a>固有の例外 "variable redeclares argument" は、関数の引数で使用された名前が、関数の本体で <code><a href="/ja/docs/Web/JavaScript/Reference/Statements/var">var</a></code> の代入を使用して再宣言された場合に発生します。</p> -<pre class="syntaxbox">TypeError: variable "x" redeclares argument (Firefox) +<h2 id="Message">エラーメッセージ</h2> + +<pre class="brush: js">TypeError: variable "x" redeclares argument (Firefox) </pre> -<h2 id="エラータイプ">エラータイプ</h2> +<h2 id="Error_type">エラーの種類</h2> <p><a href="/ja/docs/Web/JavaScript/Reference/Strict_mode">strict モード</a> でのみ、{{jsxref("TypeError")}} の警告がでます。</p> <h2 id="何がうまくいかなかったのか?">何がうまくいかなかったのか?</h2> -<p>関数のパラメータとして使用されたものと同じ変数名が、関数のボディ内で <code><a href="/ja/docs/Web/JavaScript/Reference/Statements/var">var</a></code> 割り当てを使用して再宣言されています。これは命名が競合する可能性があるため、JavaScript が警告を発します。</p> +<p>関数の引数として使用されたものと同じ変数名が、関数の本体で <code><a href="/ja/docs/Web/JavaScript/Reference/Statements/var">var</a></code> の代入を使用して再宣言されています。これは命名が競合する可能性があるため、JavaScript が警告を発します。</p> <p>このエラーは、<a href="/ja/docs/Web/JavaScript/Reference/Strict_mode">strict モードのコード</a> でのみ発生します。非 strict モードでは、再宣言は暗黙裡に無視されます。</p> @@ -31,21 +34,21 @@ translation_of: Web/JavaScript/Reference/Errors/Var_hides_argument <p>このケースでは、変数 "arg" 引数を再宣言しています。</p> -<pre class="brush: js example-bad">"use strict"; +<pre class="brush: js example-bad">'use strict'; function f(arg) { - var arg = "foo"; + var arg = 'foo'; } </pre> -<h3 id="有効なケース">有効なケース</h3> +<h3 id="Valid_cases">有効な場合</h3> -<p><code><a href="/ja/docs/Web/JavaScript/Reference/Statements/var">var</a></code> ステートメントを省略するだけで、この警告を修正できます。なぜなら、変数はすでに存在しているからです。そのほかの方法として、関数のパラメータか変数名をリネームすることもできます。</p> +<p><code><a href="/ja/docs/Web/JavaScript/Reference/Statements/var">var</a></code> 文を省略するだけで、この警告を修正できます。なぜなら、変数はすでに存在しているからです。そのほかの方法として、関数の引数または変数名の名前を変更することでも対応できます。</p> -<pre class="brush: js example-good">"use strict"; +<pre class="brush: js example-good">'use strict'; function f(arg) { - arg = "foo"; + arg = 'foo'; } </pre> |