diff options
author | Masahiro FUJIMOTO <mfujimot@gmail.com> | 2021-06-25 01:17:20 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-25 01:17:20 +0900 |
commit | 9b965a794d8e500fc0414f234f451a0c6b464984 (patch) | |
tree | c0b7985200f9d14396ad6eae3aea6ca1b33a8777 /files/ja/web/javascript | |
parent | 74c650c03c337ff0868bd860b886c3af8befb743 (diff) | |
download | translated-content-9b965a794d8e500fc0414f234f451a0c6b464984.tar.gz translated-content-9b965a794d8e500fc0414f234f451a0c6b464984.tar.bz2 translated-content-9b965a794d8e500fc0414f234f451a0c6b464984.zip |
Web/JavaScript/Reference/Errors/N* を更新 (#1202)
* Web/JavaScript/Reference/Errors/N* を更新
2021/06/14 時点の英語版に同期
* 追加修正
Diffstat (limited to 'files/ja/web/javascript')
9 files changed, 221 insertions, 152 deletions
diff --git a/files/ja/web/javascript/reference/errors/negative_repetition_count/index.html b/files/ja/web/javascript/reference/errors/negative_repetition_count/index.html index 406914eb76..fceff9bdd9 100644 --- a/files/ja/web/javascript/reference/errors/negative_repetition_count/index.html +++ b/files/ja/web/javascript/reference/errors/negative_repetition_count/index.html @@ -23,7 +23,7 @@ RangeError: Invalid count value (Chrome) <p>{{jsxref("RangeError")}}</p> -<h2 id="What_went_wrong">原因</h2> +<h2 id="What_went_wrong">エラーの原因</h2> <p>{{jsxref("String.prototype.repeat()")}} メソッドを使用しています。 <code>count</code> 引数は、文字列の繰り返し回数を指定します。 これは 0 から正の {{jsxref("Infinity")}} 未満の値である必要があり、負の数は使用できません。 有効値の範囲は [0, +∞) のように説明できます。</p> @@ -33,7 +33,7 @@ RangeError: Invalid count value (Chrome) <pre class="brush: js example-bad">'abc'.repeat(-1); // RangeError </pre> -<h3 id="Valid_cases">有効なケース</h3> +<h3 id="Valid_cases">有効な場合</h3> <pre class="brush: js example-good">'abc'.repeat(0); // '' 'abc'.repeat(1); // 'abc' diff --git a/files/ja/web/javascript/reference/errors/no_non-null_object/index.html b/files/ja/web/javascript/reference/errors/no_non-null_object/index.html index d602d95826..93d167e25a 100644 --- a/files/ja/web/javascript/reference/errors/no_non-null_object/index.html +++ b/files/ja/web/javascript/reference/errors/no_non-null_object/index.html @@ -2,17 +2,20 @@ title: 'TypeError: "x" is not a non-null object' slug: Web/JavaScript/Reference/Errors/No_non-null_object tags: - - Error - - Errors - - JavaScript - - TypeError +- Error +- Errors +- JavaScript +- TypeError translation_of: Web/JavaScript/Reference/Errors/No_non-null_object --- <div>{{JSSidebar("Errors")}}</div> -<h2 id="メッセージ">メッセージ</h2> +<p>JavaScript の例外 "is not a non-null object" は、オブジェクトが何かを求めているのに提供されなかった場合に発生します。 {{jsxref("null")}} はオブジェクトではなく、動作しません。</p> -<pre class="syntaxbox">TypeError: "x" is not a non-null object (Firefox) +<h2 id="Message">エラーメッセージ</h2> + +<pre class="brush: js">TypeError: Invalid descriptor for property {x} (Edge) +TypeError: "x" is not a non-null object (Firefox) TypeError: Property description must be an object: "x" (Chrome) TypeError: Invalid value used in weak set (Chrome) </pre> @@ -23,13 +26,13 @@ TypeError: Invalid value used in weak set (Chrome) <h2 id="何がうまくいかなかったのか?">何がうまくいかなかったのか?</h2> -<p>どこかでオブジェクトが期待されていますが、提供されませんでした。{{jsxref("null")}} はオブジェクトではなく、動作しません。与えられた状況で適切なオブジェクトを提供しなければなりません。</p> +<p>どこかでオブジェクトが期待されていますが、提供されませんでした。 {{jsxref("null")}} はオブジェクトではなく、動作しません。与えられた状況で適切なオブジェクトを提供しなければなりません。</p> <h2 id="例">例</h2> -<h3 id="プロパティディスクリプタが想定される">プロパティディスクリプタが想定される</h3> +<h3 id="Property_descriptor_expected">プロパティディスクリプターが期待される場合</h3> -<p>{{jsxref("Object.create()")}} メソッドや {{jsxref("Object.defineProperty()")}} メソッド、{{jsxref("Object.defineProperties()")}} メソッドを使用するとき、省略可能なディスクリプタ引数として、プロパティディスクリプタオブジェクトが想定されます。(ただの数値のように) オブジェクトを提供しないと、エラーをスローします:</p> +<p>{{jsxref("Object.create()")}} メソッドや {{jsxref("Object.defineProperty()")}} メソッド、{{jsxref("Object.defineProperties()")}} メソッドを使用するとき、省略可能なディスクリプター引数として、プロパティディスクリプターオブジェクトが想定されます。 (ただの数値のように) オブジェクトを提供しないと、エラーが発生します。</p> <pre class="brush: js example-bad">Object.defineProperty({}, 'key', 1); // TypeError: 1 is not a non-null object @@ -38,12 +41,12 @@ Object.defineProperty({}, 'key', null); // TypeError: null is not a non-null object </pre> -<p>有効なプロパティディスクリプタはこのようになります:</p> +<p>有効なプロパティディスクリプターはこのようになります。</p> <pre class="brush: js example-good">Object.defineProperty({}, 'key', { value: 'foo', writable: false }); </pre> -<h3 id="WeakMap_オブジェクトと_WeakSet_オブジェクトはオブジェクトキーが必要"><code>WeakMap</code> オブジェクトと <code>WeakSet</code> オブジェクトはオブジェクトキーが必要</h3> +<h3 id="WeakMap_and_WeakSet_objects_require_object_keys"><code>WeakMap</code> オブジェクトと <code>WeakSet</code> オブジェクトはオブジェクトキーが必要</h3> <p>{{jsxref("WeakMap")}} オブジェクトと {{jsxref("WeakSet")}} オブジェクトはオブジェクトキーを保持します。そのほかの型をキーとして使用できません。</p> @@ -51,7 +54,7 @@ Object.defineProperty({}, 'key', null); ws.add('foo'); // TypeError: "foo" is not a non-null object</pre> -<p>代わりにオブジェクトを使用します:</p> +<p>代わりにオブジェクトを使用してください。</p> <pre class="brush: js example-good">ws.add({foo: 'bar'}); ws.add(window); @@ -60,7 +63,7 @@ ws.add(window); <h2 id="関連項目">関連項目</h2> <ul> - <li>{{jsxref("Object.create()")}}</li> - <li>{{jsxref("Object.defineProperty()")}}、{{jsxref("Object.defineProperties()")}}</li> - <li>{{jsxref("WeakMap")}}、{{jsxref("WeakSet")}}</li> + <li>{{jsxref("Object.create()")}}</li> + <li>{{jsxref("Object.defineProperty()")}}、{{jsxref("Object.defineProperties()")}}</li> + <li>{{jsxref("WeakMap")}}、{{jsxref("WeakSet")}}</li> </ul> diff --git a/files/ja/web/javascript/reference/errors/no_properties/index.html b/files/ja/web/javascript/reference/errors/no_properties/index.html index d699a0767f..6630aee904 100644 --- a/files/ja/web/javascript/reference/errors/no_properties/index.html +++ b/files/ja/web/javascript/reference/errors/no_properties/index.html @@ -2,22 +2,26 @@ title: 'TypeError: "x" has no properties' slug: Web/JavaScript/Reference/Errors/No_properties tags: - - Errors - - JavaScript - - TypeError +- Error +- Errors +- JavaScript +- TypeError translation_of: Web/JavaScript/Reference/Errors/No_properties --- <div>{{jsSidebar("Errors")}}</div> -<h2 id="メッセージ">メッセージ</h2> +<p>JavaScript の例外 "null (or undefined) has no properties" は、 {{jsxref("null")}} および {{jsxref("undefined")}} のプロパティにアクセスしようとしたときに発生します。これらには何もありません。They</p> -<pre class="syntaxbox">TypeError: null has no properties -TypeError: undefined has no properties +<h2 id="Message">エラーメッセージ</h2> + +<pre class="brush: js">TypeError: Unable to get property {x} of undefined or null reference (Edge) +TypeError: null has no properties (Firefox) +TypeError: undefined has no properties (Firefox) </pre> <h2 id="エラータイプ">エラータイプ</h2> -<p>{{jsxref("TypeError")}}。</p> +<p>{{jsxref("TypeError")}}</p> <h2 id="何がうまくいかなかったのか?">何がうまくいかなかったのか?</h2> @@ -25,6 +29,8 @@ TypeError: undefined has no properties <h2 id="例">例</h2> +<h3 id="null_and_undefined_have_no_properties">null と undefined にはプロパティがない</h3> + <pre class="brush: js example-bad">null.foo; // TypeError: null has no properties @@ -35,6 +41,6 @@ undefined.bar; <h2 id="関連項目">関連項目</h2> <ul> - <li>{{jsxref("null")}}</li> - <li>{{jsxref("undefined")}}</li> + <li>{{jsxref("null")}}</li> + <li>{{jsxref("undefined")}}</li> </ul> diff --git a/files/ja/web/javascript/reference/errors/no_variable_name/index.html b/files/ja/web/javascript/reference/errors/no_variable_name/index.html index f72764f8cd..34cadd49ce 100644 --- a/files/ja/web/javascript/reference/errors/no_variable_name/index.html +++ b/files/ja/web/javascript/reference/errors/no_variable_name/index.html @@ -10,49 +10,47 @@ translation_of: Web/JavaScript/Reference/Errors/No_variable_name --- <div>{{jsSidebar("Errors")}}</div> -<p>JavaScript の例外 "missing variable name" が頻繁に発生するのは、物の名前を付けるのが大変だからです。あるいは、カンマが間違っているかもしれません。タイプミスがないかチェックしましょう</p> +<p>JavaScript の例外 "missing variable name" は、開発者がよく経験するエラーです。入力間違いや変数名を忘れた場合によく発生します。</p> -<h2 id="Message" name="Message">メッセージ</h2> +<h2 id="Message">エラーメッセージ</h2> -<pre class="syntaxbox notranslate">SyntaxError: missing variable name (Firefox) +<pre class="brush: js">SyntaxError: missing variable name (Firefox) SyntaxError: Unexpected token = (Chrome)</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>変数名に名前がありません。これはコードの構文エラーが原因である可能性があります。おそらく、どこかでカンマが間違っているか、名前を付けるのに苦戦しているかです。分かります。名前を付けるのは難しいです。</p> +<p>変数の名前がありません。原因は、タイプミスや変数名の忘れがほとんどです。変数名が <code>=</code> 記号の前に記載されていることを確認してください。</p> -<ul> - <li>前の行や宣言が、セミコロンではなくカンマで終了していないかどうか確認しましょう。</li> -</ul> +<p>複数の変数を同時に宣言する場合は、前の行/宣言がセミコロンではなくカンマで終わっていないことを確認してください。</p> -<h2 id="Examples" name="Examples">例</h2> +<h2 id="Examples">例</h2> -<h3 id="Missing_a_variable_name" name="Missing_a_variable_name">変数名を忘れている</h3> +<h3 id="Missing_a_variable_name">変数名を忘れている</h3> -<pre class="brush: js example-bad notranslate">var = "foo"; +<pre class="brush: js example-bad">var = "foo"; </pre> -<p>良い変数名を考えるのは大変です。みんなそうでした。</p> +<p>分かりやすい変数名を考えることは、ほとんどの開発者にとって難しいことです。しかし、時間が経てば簡単になります。</p> -<pre class="brush: js example-good notranslate">var ohGodWhy = "foo";</pre> +<pre class="brush: js example-good">var description = "foo";</pre> -<h3 id="Reserved_keywords_cant_be_variable_names" name="Reserved_keywords_cant_be_variable_names">予約語は変数名にできない</h3> +<h3 id="Reserved_keywords_cant_be_variable_names">予約語は変数名にできない</h3> -<p>いくつかの変数名は<a href="/ja/docs/Web/JavaScript/Reference/Lexical_grammar#Keywords">予約語</a>です。使用できません。ごめんなさい:(</p> +<p>いくつか<a href="/ja/docs/Web/JavaScript/Reference/Lexical_grammar#keywords">予約語</a>である変数名があります。使用できません。ごめんね:(</p> -<pre class="brush: js example-bad notranslate">var debugger = "whoop"; +<pre class="brush: js example-bad">var debugger = "whoop"; // SyntaxError: missing variable name </pre> -<h3 id="Declaring_multiple_variables" name="Declaring_multiple_variables">複数の変数宣言</h3> +<h3 id="Declaring_multiple_variables">複数の変数宣言</h3> <p>複数の変数を宣言するときは、カンマに特別な注意を払ってください。余分なカンマがありませんか?誤ってセミコロンの代わりにカンマを加えていませんか?</p> -<pre class="brush: js example-bad notranslate">var x, y = "foo", +<pre class="brush: js example-bad">var x, y = "foo", var x, = "foo" var first = document.getElementById('one'), @@ -61,30 +59,30 @@ var second = document.getElementById('two'), // SyntaxError: missing variable name </pre> -<p>修正版:</p> +<p>修正版は次の通りです。</p> -<pre class="brush: js example-good notranslate">var x, y = "foo"; +<pre class="brush: js example-good">var x, y = "foo"; var x = "foo"; var first = document.getElementById('one'); var second = document.getElementById('two');</pre> -<h3 id="Arrays" name="Arrays">配列</h3> +<h3 id="Arrays">配列</h3> <p>JavaScript の {{jsxref("Array")}} リテラルは、値を角括弧で囲む必要があります。これは動作しません。</p> -<pre class="brush: js example-bad notranslate">var arr = 1,2,3,4,5; +<pre class="brush: js example-bad">var arr = 1,2,3,4,5; // SyntaxError: missing variable name </pre> -<p>正しくは:</p> +<p>正しくは次の通りです。</p> -<pre class="brush: js example-good notranslate">var arr = [1,2,3,4,5];</pre> +<pre class="brush: js example-good">var arr = [1,2,3,4,5];</pre> -<h2 id="See_also" name="See_also">関連情報</h2> +<h2 id="See_also">関連情報</h2> <ul> - <li><a href="http://wiki.c2.com/?GoodVariableNames">良い変数名</a></li> + <li><a href="https://wiki.c2.com/?GoodVariableNames">良い変数名</a></li> <li>{{jsxref("Statements/var", "var")}}</li> - <li><a href="/ja/docs/Web/JavaScript/Guide/Grammar_and_types#Declarations">JavaScript ガイドの変数の宣言</a></li> + <li><a href="/ja/docs/Web/JavaScript/Guide/Grammar_and_types#declarations">JavaScript ガイドの変数の宣言</a></li> </ul> diff --git a/files/ja/web/javascript/reference/errors/non_configurable_array_element/index.html b/files/ja/web/javascript/reference/errors/non_configurable_array_element/index.html index c0b577db67..2542f87d24 100644 --- a/files/ja/web/javascript/reference/errors/non_configurable_array_element/index.html +++ b/files/ja/web/javascript/reference/errors/non_configurable_array_element/index.html @@ -1,35 +1,43 @@ --- title: 'TypeError: can''t delete non-configurable array element' slug: Web/JavaScript/Reference/Errors/Non_configurable_array_element +tags: + - Error + - Errors + - JavaScript + - TypeError translation_of: Web/JavaScript/Reference/Errors/Non_configurable_array_element --- <div>{{jsSidebar("Errors")}}</div> -<h2 id="メッセージ">メッセージ</h2> +<p>JavaScript の例外 "can't delete non-configurable array element" は、配列を<a href="/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/length#shortening_an_array">短縮</a>しようとしたときに配列の要素の 1 つが<a href="/en-US/docs/Web/JavaScript/Data_structures#properties">設定不可</a>であった場合に発生します。</p> -<pre class="syntaxbox">TypeError: can't delete non-configurable array element (Firefox) +<h2 id="Message">エラーメッセージ</h2> + +<pre class="brush: js">TypeError: can't delete non-configurable array element (Firefox) TypeError: Cannot delete property '2' of [object Array] (Chrome) </pre> -<h2 id="エラータイプ">エラータイプ</h2> +<h2 id="Error_type">エラーの種類</h2> <p>{{jsxref("TypeError")}}</p> -<h2 id="何がうまくいかなかったのか?">何がうまくいかなかったのか?</h2> +<h2 id="What_went_wrong">エラーの原因</h2> -<p>配列を<a href="/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/length#Example:_Shortening_an_array">短縮</a>しようとしていますが、配列の要素が<a href="/ja/docs/Web/JavaScript/Data_structures#Properties">変更不可</a>です。配列の短縮をするとき、新しい配列の長さを超える要素は削除されますが、このシチュエーションでは失敗します。</p> +<p>配列を<a href="/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/length#shortening_an_array">短縮</a>しようとしていますが、配列の要素が<a href="/ja/docs/Web/JavaScript/Data_structures#properties">変更不可</a>です。配列の短縮をするとき、新しい配列の長さを超える要素は削除されますが、このシチュエーションでは失敗します。</p> <p><code>configurable</code> 属性はプロパティをオブジェクトから削除できるかどうか、および (<code>writable</code> 以外の) 変更できるかどうかを制御します。</p> -<p>通常、<a href="/ja/docs/Web/JavaScript/Reference/Global_Objects/Array#Syntax">配列初期化子</a>で生成されたオブジェクトのプロパティは変更可能です。しかし、たとえば {{jsxref("Object.defineProperty()")}} が使用された場合、既定でプロパティを変更できません。</p> +<p>通常、<a href="/ja/docs/Web/JavaScript/Reference/Global_Objects/Array#syntax">配列初期化子</a>で生成されたオブジェクトのプロパティは変更可能です。しかし、たとえば {{jsxref("Object.defineProperty()")}} が使用された場合、既定でプロパティを変更できません。</p> <h2 id="例">例</h2> -<h3 id="Object.defineProperty_で生成した変更不可能なプロパティ"><code>Object.defineProperty</code> で生成した変更不可能なプロパティ</h3> +<h3 id="Non-configurable_properties_created_by_Object.defineProperty"><code>Object.defineProperty</code> で生成した変更不可能なプロパティ</h3> <p>プロパティを変更できないように指定する場合、{{jsxref("Object.defineProperty()")}} は既定で変更できないプロパティを生成します。</p> -<pre class="brush: js example-bad">var arr = []; +<pre class="brush: js example-bad">"use strict"; +var arr = []; Object.defineProperty(arr, 0, {value: 0}); Object.defineProperty(arr, 1, {value: "1"}); @@ -39,27 +47,30 @@ arr.length = 1; <p>配列を短縮したい場合、要素を変更可能に設定する必要があります。</p> -<pre class="brush: js example-good">var arr = []; +<pre class="brush: js example-good">"use strict"; +var arr = []; Object.defineProperty(arr, 0, {value: 0, configurable: true}); Object.defineProperty(arr, 1, {value: "1", configurable: true}); arr.length = 1; </pre> -<h3 id="シールされた配列"><code>シール</code>された配列</h3> +<h3 id="Seal-ed_Arrays">封印された配列</h3> <p>{{jsxref("Object.seal()")}} 関数はすべての存在する要素を設定不可にします。</p> -<pre class="brush: js example-bad">var arr = [1,2,3]; +<pre class="brush: js example-bad">"use strict"; +var arr = [1,2,3]; Object.seal(arr); arr.length = 1; // TypeError: can't delete non-configurable array element </pre> -<p>{{jsxref("Object.seal()")}} の呼び出しを削除するか、配列のコピーを取る必要があります。コピーの場合、コピーした配列の短縮は元の配列の長さに影響しません。/p></p> +<p>{{jsxref("Object.seal()")}} の呼び出しを削除するか、配列のコピーを取る必要があります。コピーの場合、コピーした配列の短縮は元の配列の長さに影響しません。</p> -<pre class="brush: js example-good">var arr = [1,2,3]; +<pre class="brush: js example-good">"use strict"; +var arr = [1,2,3]; Object.seal(arr); // Copy the initial array to shorten the copy @@ -71,8 +82,8 @@ copy.length = 1; <h2 id="関連項目">関連項目</h2> <ul> - <li><a href="/ja/docs/Web/JavaScript/Data_structures#Properties">[[Configurable]]</a></li> - <li>{{jsxref("Array.length")}}</li> - <li>{{jsxref("Object.defineProperty()")}}</li> - <li>{{jsxref("Object.seal()")}}</li> + <li><a href="/ja/docs/Web/JavaScript/Data_structures#properties">[[Configurable]]</a></li> + <li>{{jsxref("Array.length")}}</li> + <li>{{jsxref("Object.defineProperty()")}}</li> + <li>{{jsxref("Object.seal()")}}</li> </ul> diff --git a/files/ja/web/javascript/reference/errors/not_a_codepoint/index.html b/files/ja/web/javascript/reference/errors/not_a_codepoint/index.html index 8bc1d11a3f..489619f6ea 100644 --- a/files/ja/web/javascript/reference/errors/not_a_codepoint/index.html +++ b/files/ja/web/javascript/reference/errors/not_a_codepoint/index.html @@ -18,11 +18,11 @@ translation_of: Web/JavaScript/Reference/Errors/Not_a_codepoint RangeError: Invalid code point {0} (Chromium) </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>{{jsxref("String.fromCodePoint()")}} は、 {{jsxref("NaN")}} 値、負の整数 (-1)、 整数以外 (5.4)、 0x10FFFF より大きい数 (1114111) が渡されるとこのエラーを発生します。</p> @@ -39,7 +39,7 @@ String.fromCodePoint(3.14); // RangeError String.fromCodePoint(3e-2); // RangeError String.fromCodePoint(NaN); // RangeError</pre> -<h3 id="Valid_cases">有効なケース</h3> +<h3 id="Valid_cases">有効な場合</h3> <pre class="brush: js example-good">String.fromCodePoint(42); // "*" String.fromCodePoint(65, 90); // "AZ" diff --git a/files/ja/web/javascript/reference/errors/not_a_constructor/index.html b/files/ja/web/javascript/reference/errors/not_a_constructor/index.html index 68b226a54f..b916bafd40 100644 --- a/files/ja/web/javascript/reference/errors/not_a_constructor/index.html +++ b/files/ja/web/javascript/reference/errors/not_a_constructor/index.html @@ -2,6 +2,7 @@ title: 'TypeError: "x" is not a constructor' slug: Web/JavaScript/Reference/Errors/Not_a_constructor tags: + - Error - Errors - JavaScript - TypeError @@ -9,34 +10,36 @@ translation_of: Web/JavaScript/Reference/Errors/Not_a_constructor --- <div>{{jsSidebar("Errors")}}</div> -<h2 id="Message" name="Message">メッセージ</h2> +<p>JavaScript の例外 "is not a constructor" は、オブジェクトや変数をコンストラクターとして使用しようとしたものの、そのオブジェクトや変数がコンストラクターではなかった場合に発生します。</p> -<pre class="syntaxbox">TypeError: "x" is not a constructor +<h2 id="Message">エラーメッセージ</h2> + +<pre class="brush: js">TypeError: Object doesn't support this action (Edge) +TypeError: "x" is not a constructor TypeError: Math is not a constructor TypeError: JSON is not a constructor TypeError: Symbol is not a constructor TypeError: Reflect is not a constructor TypeError: Intl is not a constructor -TypeError: SIMD is not a constructor TypeError: Atomics is not a constructor </pre> -<h2 id="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>オブジェクト、または変数をコンストラクターとして使おうとしていますが、それらがコンストラクターではありません。コンストラクターとは何かについては、{{Glossary("constructor","コンストラクター")}} か <a href="/ja/docs/Web/JavaScript/Reference/Operators/new"><code>new</code></a> 演算子を見てください。</p> +<p>オブジェクト、または変数をコンストラクターとして使おうとしていますが、それらがコンストラクターではありません。コンストラクターとは何かについては、<a href="/ja/docs/Glossary/Constructor">コンストラクター</a>または <a href="/ja/docs/Web/JavaScript/Reference/Operators/new"><code>new</code></a> 演算子を参照してください。</p> -<p>{{jsxref("String")}} や {{jsxref("Array")}} のような、<code>new</code> を使用して生成できる数多くのグローバルオブジェクトがあります。しかし、いくつかのグローバルオブジェクトはそうではなく、 それらのプロパティやメソッドは静的です。次の JavaScript 標準ビルトインオブジェクトは、コンストラクターではありません: {{jsxref("Math")}} と {{jsxref("JSON")}}、{{jsxref("Symbol")}}、{{jsxref("Reflect")}}、{{jsxref("Intl")}}、{{jsxref("SIMD")}}、{{jsxref("Atomics")}}。</p> +<p>{{jsxref("String")}} や {{jsxref("Array")}} のような、<code>new</code> を使用して生成できる数多くのグローバルオブジェクトがあります。しかし、いくつかのグローバルオブジェクトはそうではなく、 それらのプロパティやメソッドは静的です。次の JavaScript 標準組み込みオブジェクトのうち、 {{jsxref("Math")}}、{{jsxref("JSON")}}、{{jsxref("Symbol")}}、{{jsxref("Reflect")}}、{{jsxref("Intl")}}、{{jsxref("Atomics")}} はコンストラクターではありません:。</p> <p><a href="/ja/docs/Web/JavaScript/Reference/Statements/function*">function*</a> も、コンストラクターとして使用することはできません。</p> -<h2 id="Examples" name="Examples">例</h2> +<h2 id="Examples">例</h2> -<h3 id="Invalid_cases" name="Invalid_cases">無効なケース</h3> +<h3 id="Invalid_cases">無効な場合</h3> <pre class="brush: js example-bad">var Car = 1; new Car(); @@ -53,9 +56,9 @@ var obj = new f; // TypeError: f is not a constructor </pre> -<h3 id="A_car_constructor" name="A_car_constructor">car コンストラクター</h3> +<h3 id="A_car_constructor">car コンストラクター</h3> -<p>車のためのオブジェクト型を生成するとします。このオブジェクトの型が <code>car</code> と呼ばれ、make と model、year プロパティを持つとします。これを行うには、次の関数を定義します:</p> +<p>自動車のためのオブジェクト型を作成するとします。このオブジェクト型を <code>Car</code> と呼び、 make, model, year の各プロパティを持つようにしたいとします。これを実現するには、次のような関数を定義します。</p> <pre class="brush: js">function Car(make, model, year) { this.make = make; @@ -64,20 +67,20 @@ var obj = new f; } </pre> -<p>次のように <code>mycar</code> と呼ばれるオブジェクトを生成できます:</p> +<p>次のようにして <code>mycar</code> というオブジェクトを生成できるようになりました。</p> <pre class="brush: js">var mycar = new Car('Eagle', 'Talon TSi', 1993);</pre> -<h3 id="In_Promises">In Promises</h3> +<h3 id="In_Promises">プロミスの場合</h3> -<p>When returning an immediately-resolved or immediately-rejected Promise, you do not need to create a <em>new Promise(...)</em> and act on it.</p> +<p>直ちに解決するか拒否されるプロミスを返す場合は、 <em>new Promise(...)</em> を生成して操作する必要はありません。</p> -<p>This is not legal (the <a href="/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise#Constructor">Promise constructor</a> is not being called correctly) and will throw a <code>TypeError: this is not a constructor</code> exception:</p> +<p>これは正しくなく (<a href="/ja/docs/Web/JavaScript/Reference/Global_Objects/Promise/Promise">Promise コンストラクター</a>が正しく呼び出されません)、 <code>TypeError: this is not a constructor</code> 例外が発生します。</p> <pre class="brush: js example-bad">return new Promise.resolve(true); </pre> -<p>Instead, use the<a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/resolve"> Promise.resolve()</a> or <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/reject">Promise.reject()</a> <a href="https://en.wikipedia.org/wiki/Method_(computer_programming)#Static_methods">static methods</a>:</p> +<p>Instead, use the <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/resolve">Promise.resolve()</a> or <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/reject">Promise.reject()</a> <a href="https://en.wikipedia.org/wiki/Method_(computer_programming)#Static_methods">static methods</a>:</p> <pre class="brush: js">// This is legal, but unnecessarily long: return new Promise((resolve, reject) => { resolve(true); }) @@ -87,9 +90,9 @@ return Promise.resolve(true); return Promise.reject(false); </pre> -<h2 id="See_also" name="See_also">関連項目</h2> +<h2 id="See_also">関連情報</h2> <ul> - <li>{{Glossary("constructor")}}</li> + <li><a href="/ja/docs/Glossary/Constructor">コンストラクター</a></li> <li><a href="/ja/docs/Web/JavaScript/Reference/Operators/new"><code>new</code></a> 演算子</li> </ul> diff --git a/files/ja/web/javascript/reference/errors/not_a_function/index.html b/files/ja/web/javascript/reference/errors/not_a_function/index.html index 9b679e9bd2..06b63db14d 100644 --- a/files/ja/web/javascript/reference/errors/not_a_function/index.html +++ b/files/ja/web/javascript/reference/errors/not_a_function/index.html @@ -2,63 +2,67 @@ title: 'TypeError: "x" is not a function' slug: Web/JavaScript/Reference/Errors/Not_a_function tags: - - Errors - - JavaScript - - TypeError +- Error +- Errors +- JavaScript +- TypeError translation_of: Web/JavaScript/Reference/Errors/Not_a_function --- <div>{{jsSidebar("Errors")}}</div> -<h2 id="Message" name="Message">エラーメッセージ</h2> +<p>JavaScript の例外 "is not a function" は、値を関数として呼び出そうとしたが、その値が実際には関数ではなかった場合に発生します。</p> -<pre class="syntaxbox">TypeError: "x" is not a function +<h2 id="Message">エラーメッセージ</h2> + +<pre class="brush: js">TypeError: Object doesn't support property or method {x} (Edge) +TypeError: "x" is not a function </pre> -<h2 id="エラーの種類">エラーの種類</h2> +<h2 id="Error_type">エラーの種類</h2> -<p>{{jsxref("TypeError")}}.</p> +<p>{{jsxref("TypeError")}}</p> -<h2 id="What_went_wrong" name="What_went_wrong">エラーの原因</h2> +<h2 id="What_went_wrong">エラーの原因</h2> <p>関数でないものを、関数呼び出ししようとした際に発生するエラーです。また適切な関数が定義されていることを期待されているが、定義されていない場合も発生します。</p> <p>関数名のタイプミスをしていないか確認してみましょう。また、呼び出そうとしてるオブジェクトがそのメソッドを持っているかどうかも確認してみてください。配列オブジェクトが持っている <code>map</code> 関数を、それを持たない通常のオブジェクトに対して呼び出そうとしている場合が、後者の例になります。</p> -<p>多くの組み込み関数はコールバック関数を必要とします。これらのメソッドを正しく呼び出すためには、関数を引数に指定する必要があります:</p> +<p>多くの組み込み関数はコールバック関数を必要とします。これらのメソッドを正しく呼び出すためには、関数を引数に指定する必要があります。</p> <ul> - <li>{{jsxref("Array")}} もしくは {{jsxref("TypedArray")}} オブジェクトを操作する場合: - <ul> - <li>{{jsxref("Array.prototype.every()")}}, {{jsxref("Array.prototype.some()")}}, {{jsxref("Array.prototype.forEach()")}}, {{jsxref("Array.prototype.map()")}}, {{jsxref("Array.prototype.filter()")}}, {{jsxref("Array.prototype.reduce()")}}, {{jsxref("Array.prototype.reduceRight()")}}, {{jsxref("Array.prototype.find()")}}</li> - </ul> - </li> - <li> {{jsxref("Map")}} もしくは {{jsxref("Set")}} を操作する場合: - <ul> - <li>{{jsxref("Map.prototype.forEach()")}}, {{jsxref("Set.prototype.forEach()")}}</li> - </ul> - </li> + <li>{{jsxref("Array")}} もしくは {{jsxref("TypedArray")}} オブジェクトを操作する場合: + <ul> + <li>{{jsxref("Array.prototype.every()")}}, {{jsxref("Array.prototype.some()")}}, {{jsxref("Array.prototype.forEach()")}}, {{jsxref("Array.prototype.map()")}}, {{jsxref("Array.prototype.filter()")}}, {{jsxref("Array.prototype.reduce()")}}, {{jsxref("Array.prototype.reduceRight()")}}, {{jsxref("Array.prototype.find()")}}</li> + </ul> + </li> + <li> {{jsxref("Map")}} もしくは {{jsxref("Set")}} を操作する場合: + <ul> + <li>{{jsxref("Map.prototype.forEach()")}}, {{jsxref("Set.prototype.forEach()")}}</li> + </ul> + </li> </ul> -<h2 id="このエラーを起こすコードの例">このエラーを起こすコードの例</h2> +<h2 id="Examples">例</h2> -<h3 id="関数名のタイプミス">関数名のタイプミス</h3> +<h3 id="A_typo_in_the_function_name">関数名のタイプミス</h3> -<p>次のように関数名を間違っている場合に発生します。なおこのミスは非常に多く発生します:</p> +<p>次のように関数名を間違えている場合に発生します。なおこのミスは非常に多く発生します。</p> -<pre class="brush: js example-bad">var x = document.getElementByID("foo"); +<pre class="brush: js example-bad">let x = document.getElementByID('foo'); // TypeError: document.getElementByID is not a function </pre> -<p>正しい関数名は <code>getElementByI<strong>d</strong></code> です:</p> +<p>正しい関数名は <code>getElementById</code> です。</p> -<pre class="brush: js example-good">var x = document.getElementById("foo"); +<pre class="brush: js example-good">let x = document.getElementById('foo'); </pre> -<h3 id="間違ったオブジェクトに対する関数呼び出し">間違ったオブジェクトに対する関数呼び出し</h3> +<h3 id="Function_called_on_the_wrong_object">間違ったオブジェクトに対する関数呼び出し</h3> <p>いくつかのメソッドは、引数に関数が指定されていることを期待していて、しかも特定のオブジェクトの上でのみ正しく動作するものがあります。この典型例が {{jsxref("Array.prototype.map()")}} で、これは {{jsxref("Array")}} オブジェクトでのみ正しく動作します。</p> -<pre class="brush: js example-bad">var obj = { a: 13, b: 37, c: 42 }; +<pre class="brush: js example-bad">let obj = {a: 13, b: 37, c: 42}; obj.map(function(num) { return num * 2; @@ -66,25 +70,25 @@ obj.map(function(num) { // TypeError: obj.map is not a function</pre> -<p>オブジェクトではなく、配列を利用しましょう:</p> +<p>オブジェクトではなく、配列を利用しましょう。</p> -<pre class="brush: js example-good">var numbers = [1, 4, 9]; +<pre class="brush: js example-good">let numbers = [1, 4, 9]; numbers.map(function(num) { return num * 2; }); -// Array [ 2, 8, 18 ] +// Array [2, 8, 18] </pre> -<h3 id="Function_shares_a_name_with_a_pre-existing_property" name="Function_shares_a_name_with_a_pre-existing_property">すでに存在するプロパティと名前を共有する関数</h3> +<h3 id="Function_shares_a_name_with_a_pre-existing_property">すでに存在するプロパティと名前を共有する関数</h3> -<p>クラスを作るとき、時々プロパティと関数が同じ名前であることがあります。関数を呼び出すと、コンパイラーは関数が存在するのをやめたように考えます。</p> +<p>クラスを作るとき、プロパティと関数が同じ名前になることがあります。関数を呼び出すと、コンパイラーは関数が存在するのをやめたように考えます。</p> -<pre><code>var Dog = function () { +<pre class="brush: js example-bad">var Dog = function () { this.age = 11; this.color = "black"; - this.name = "Ralph"; + this.name = "Ralph"; return this; } @@ -93,16 +97,16 @@ Dog.prototype.name = function(name) { return this; } - var myNewDog = new Dog(); -myNewDog.name("Cassidy"); //Uncaught TypeError: myNewDog.name is not a function</code></pre> +myNewDog.name("Cassidy"); //Uncaught TypeError: myNewDog.name is not a function +</pre> -<p>代わりに異なるプロパティ名を使ってください:</p> +<p>代わりに異なるプロパティ名を使ってください。</p> -<pre><code>var Dog = function () { +<pre class="brush: js example-good">var Dog = function () { this.age = 11; this.color = "black"; - this.dogName = "Ralph"; //Using this.dogName instead of .name + this.dogName = "Ralph"; //Using this.dogName instead of .name return this; } @@ -111,12 +115,56 @@ Dog.prototype.name = function(name) { return this; } - var myNewDog = new Dog(); -myNewDog.name("Cassidy"); //Dog { age: 11, color: 'black', dogName: 'Cassidy' }</code></pre> +myNewDog.name("Cassidy"); //Dog { age: 11, color: 'black', dogName: 'Cassidy' } +</pre> + +<h3 id="Using_brackets_for_multiplication">乗算での括弧の使用</h3> + +<p>数学では、 2 × (3 + 5) を 2*(3 + 5) または単に 2(3 + 5) と書くことができます。</p> + +<p>後者を使用するとエラーが発生します。</p> + +<pre class="js example-bad">const sixteen = 2(3 + 5); +alert('2 x (3 + 5) is ' + String(sixteen)); +//Uncaught TypeError: 2 is not a function</pre> + +<p>このコードは <code>*</code> 演算子を追加すると修正できます。</p> + +<pre class="js example-good">const sixteen = 2 * (3 + 5); +alert('2 x (3 + 5) is ' + String(sixteen)); +//2 x (3 + 5) is 16 +</pre> + +<h3 id="Import_the_exported_module_correctly">正しくエクスポートされたモジュールをインポートする</h3> + +<p>正しくモジュールをインポートしていることを確認してください。</p> + +<p>helpers ライブラリーの例 (<code>helpers.js</code>)</p> + +<pre class="brush: js">let helpers = function () { }; + +helpers.groupBy = function (objectArray, property) { + return objectArray.reduce(function (acc, obj) { + var key = obj[property]; + if (!acc[key]) { + acc[key] = []; + } + acc[key].push(obj); + return acc; + }, +{}); +} + +export default helpers; +</pre> + +<p>正しい import の使い方 (<code>App.js</code>):</p> + +<pre>import helpers from './helpers'</pre> -<h2 id="See_also" name="See_also">関連情報</h2> +<h2 id="See_also">関連情報</h2> <ul> - <li><a href="/ja/docs/Web/JavaScript/Reference/Functions">Functions</a></li> + <li><a href="/ja/docs/Web/JavaScript/Reference/Functions">関数</a></li> </ul> diff --git a/files/ja/web/javascript/reference/errors/not_defined/index.html b/files/ja/web/javascript/reference/errors/not_defined/index.html index 3dc0feddee..0f32c3b1a2 100644 --- a/files/ja/web/javascript/reference/errors/not_defined/index.html +++ b/files/ja/web/javascript/reference/errors/not_defined/index.html @@ -11,40 +11,40 @@ translation_of: Web/JavaScript/Reference/Errors/Not_defined <p>JavaScript の例外 "<em>variable</em> is not defined" は、どこかで参照している変数が存在しない場合に発生します。</p> -<h2 id="Message" name="Message">メッセージ</h2> +<h2 id="Message">エラーメッセージ</h2> -<pre class="syntaxbox notranslate">ReferenceError: "x" is not defined +<pre class="brush: js">ReferenceError: "x" is not defined </pre> -<h2 id="Error_type" name="Error_type">エラー種別</h2> +<h2 id="Error_type">エラーの種類</h2> <p>{{jsxref("ReferenceError")}}.</p> -<h2 id="What_went_wrong" name="What_went_wrong">原因</h2> +<h2 id="What_went_wrong">エラーの原因</h2> -<p>どこかで存在しない変数を参照しています。この変数を宣言しておくか、現在のスクリプトまたは<a href="/ja/docs/Glossary/scope">スコープ</a>で利用可能であることを確認する必要があります。</p> +<p>どこかで存在しない変数を参照しています。この変数を宣言しておくか、現在のスクリプトまたは<a href="/ja/docs/Glossary/Scope">スコープ</a>で利用可能であることを確認する必要があります。</p> <div class="note"> -<p><strong>メモ:</strong> ライブラリ (jQuery など) を読み込むとき、ライブラリの変数、例えば "$" にアクセスする前に読み込みが行われるかを確認してください。ライブラリを読み込む {{HTMLElement("script")}} 要素は、それを使用するコードよりも前に置いてください。</p> +<p><strong>注:</strong> ライブラリ (jQuery など) を読み込むとき、ライブラリの変数、例えば "$" にアクセスする前に読み込みが行われるかを確認してください。ライブラリを読み込む {{HTMLElement("script")}} 要素は、それを使用するコードよりも前に置いてください。</p> </div> -<h2 id="Examples" name="Examples">例</h2> +<h2 id="Examples">例</h2> -<h3 id="Variable_not_declared" name="Variable_not_declared">宣言されていない変数</h3> +<h3 id="Variable_not_declared">宣言されていない変数</h3> -<pre class="brush: js example-bad notranslate">foo.substring(1); // ReferenceError: foo is not defined +<pre class="brush: js example-bad">foo.substring(1); // ReferenceError: foo is not defined </pre> <p>"foo" と言う変数はどこにも宣言されていません。これは文字列である必要があり、それならば {{jsxref("String.prototype.substring()")}} メソッドが動作します。</p> -<pre class="brush: js example-good notranslate">var foo = 'bar'; +<pre class="brush: js example-good">var foo = 'bar'; foo.substring(1); // "ar"</pre> -<h3 id="Wrong_scope" name="Wrong_scope">スコープの間違い</h3> +<h3 id="Wrong_scope">スコープの間違い</h3> <p>変数は現在の実行コンテキストで利用可能である必要があります。<a href="/ja/docs/Web/JavaScript/Reference/Functions">関数</a>の中で定義された変数は、その関数のスコープ内でしか定義されていないので、関数の外のどこからもアクセスできません。</p> -<pre class="brush: js example-bad notranslate">function numbers() { +<pre class="brush: js example-bad">function numbers() { var num1 = 2, num2 = 3; return num1 + num2; @@ -54,7 +54,7 @@ console.log(num1); // ReferenceError num1 is not defined.</pre> <p>しかし、関数はそれが定義されたスコープ内で定義されたすべての変数と関数にアクセスすることができます。言い換えれば、グローバルスコープで定義された関数は、グローバルスコープ内で定義されたすべての変数にアクセスすることができます。/p></p> -<pre class="brush: js example-good notranslate">var num1 = 2, +<pre class="brush: js example-good">var num1 = 2, num2 = 3; function numbers() { @@ -63,10 +63,10 @@ function numbers() { console.log(numbers()); // 5</pre> -<h2 id="See_also" name="See_also">関連情報</h2> +<h2 id="See_also">関連情報</h2> <ul> - <li><a href="/ja/docs/Glossary/Scope">Scope</a></li> - <li><a href="/ja/docs/Web/JavaScript/Guide/Grammar_and_types#Declaring_variables">変数の宣言 (JavaScript ガイド)</a></li> - <li><a href="/ja/docs/Web/JavaScript/Guide/Functions#Function_scope/en-US/docs/">関数のスコープ (JavaScript ガイド)</a></li> + <li><a href="/ja/docs/Glossary/Scope">スコープ</a></li> + <li><a href="/ja/docs/Web/JavaScript/Guide/Grammar_and_types#declaring_variables">変数の宣言 (JavaScript ガイド)</a></li> + <li><a href="/ja/docs/Web/JavaScript/Guide/Functions#function_scope/en-us/docs/">関数のスコープ (JavaScript ガイド)</a></li> </ul> |