From 3de0442e6b266d967e9cdfde9590432b21b55e8c Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Mon, 21 Jun 2021 13:37:57 +0900 Subject: Web/JavaScript/Reference/Errors/D-G を更新 (#1162) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Web/JavaScript/Reference/Errors/D-E を更新 2021/06/09 時点の最新版に同期 * Web/JavaScript/Reference/Errors/Getter_only を更新 * Web/JavaScript/Reference/Errors/Getter_only を更新 --- .../reference/errors/dead_object/index.html | 29 +++++++++-------- .../errors/delete_in_strict_mode/index.html | 19 +++++++---- .../errors/deprecated_tolocaleformat/index.html | 37 ++++++++++++---------- .../reference/errors/equal_as_assign/index.html | 28 ++++++++-------- .../reference/errors/getter_only/index.html | 37 ++++++++++++---------- 5 files changed, 84 insertions(+), 66 deletions(-) (limited to 'files/ja/web/javascript/reference') diff --git a/files/ja/web/javascript/reference/errors/dead_object/index.html b/files/ja/web/javascript/reference/errors/dead_object/index.html index b45b644b14..febbfbdc95 100644 --- a/files/ja/web/javascript/reference/errors/dead_object/index.html +++ b/files/ja/web/javascript/reference/errors/dead_object/index.html @@ -2,18 +2,19 @@ title: 'TypeError: can''t access dead object' slug: Web/JavaScript/Reference/Errors/Dead_object tags: - - Addon - - Addons - - Error - - Errors - - JavaScript +- Addons +- Error +- Errors +- JavaScript translation_of: Web/JavaScript/Reference/Errors/Dead_object ---
{{JSSidebar("Errors")}}
-

メッセージ

+

JavaScript の例外 "can't access dead object" は、メモリ使用量の改善とメモリリークの防止のために、 Firefox がアドオンに対して DOM オブジェクトへの強い参照を保持することを許可しなかったときに発生します。

-
TypeError: can't access dead object
+

エラーメッセージ

+ +
TypeError: can't access dead object
 

エラータイプ

@@ -22,9 +23,11 @@ translation_of: Web/JavaScript/Reference/Errors/Dead_object

何がうまくいかなかったのか?

-

メモリ使用の向上とメモリリーク防止のため、Firefox はアドオンに対して、親ドキュメントが破棄された後に DOM オブジェクトへ強い参照を保持することをできなくしています。死んだオブジェクトは、DOM で棄された後にもかかわらず、存続する DOM 要素への強い参照を保持しています。この問題を回避するために、外部ドキュメント内の DOM ノードへの参照を、そのドキュメントに固有のオブジェクトに格納し、ドキュメントがアンロードされるときにクリーンアップするか、または弱い参照にするべきです。

+

メモリ使用量の改善とメモリリークの防止のため、 Firefox は、親文書が破棄された後に DOM オブジェクトへの強い参照を保持するアドオンを禁止しています。デッドオブジェクトとは、 DOM で破壊された後も持続する DOM 要素への強力な (keep alive) 参照を保持することです。このような問題を避けるためには、外部の文書の DOM ノードへの参照は、その文書に固有のオブジェクトに保存し、その文書がアンロードされたときにクリーンアップするか、弱い参照として保存する必要があります。 + +

-

オブジェクトが破棄されているか確認する

+

オブジェクトが破棄されているかの確認

Components.utils は特権コードで使用できる isDeadWrapper() メソッドを提供しています。

@@ -44,8 +47,8 @@ catch (e) {

関連項目

diff --git a/files/ja/web/javascript/reference/errors/delete_in_strict_mode/index.html b/files/ja/web/javascript/reference/errors/delete_in_strict_mode/index.html index 0a96a3c13f..9158818092 100644 --- a/files/ja/web/javascript/reference/errors/delete_in_strict_mode/index.html +++ b/files/ja/web/javascript/reference/errors/delete_in_strict_mode/index.html @@ -12,9 +12,12 @@ translation_of: Web/JavaScript/Reference/Errors/Delete_in_strict_mode ---
{{jsSidebar("Errors")}}
-

メッセージ

+

JavaScript の strict モード専用の例外 "applying the 'delete' operator to an unqualified name is deprecated" は、 delete 演算子を用いて変数を削除しようとしたときに発生します。

-
SyntaxError: applying the 'delete' operator to an unqualified name is deprecated (Firefox)
+

エラーメッセージ

+ +
SyntaxError: Calling delete on expression not allowed in strict mode (Edge)
+SyntaxError: applying the 'delete' operator to an unqualified name is deprecated (Firefox)
 SyntaxError: Delete of an unqualified identifier in strict mode. (Chrome)
 
@@ -24,17 +27,19 @@ SyntaxError: Delete of an unqualified identifier in strict mode. (Chrome)

何がうまくいかなかったのか?

-

JavaScript では、通常の変数を delete 演算子で削除できません。strict モードで、変数を削除しようとするとエラーがスローされ、削除できません。

+

JavaScript では、通常の変数を delete 演算子で削除できません。strict モードで、変数を削除しようとするとエラーが発生し、削除できません。

delete 演算子は、オブジェクトのプロパティのみ削除できます。オブジェクトプロパティは、設定可能な場合は "修飾" されます。

-

一般的に信じられていることと異なり、delete 演算子は直接的なメモリーを開放とは関係ありません。メモリー管理は、参照の開放によって間接的に行われます。memory management ページと delete 演算子ページで詳細を確認してください。

+

よくある予想とは異なり、 delete 演算子は直接的なメモリーの解放とは関係ありません。メモリー管理は、参照の解放によって間接的に行われます。メモリー管理ページと delete 演算子ページで詳細を確認してください。

このエラーは、strict mode モードでのみ発生します。非 strict モードでは、演算子はただ false を返します。

-

プレーンな変数を削除しようとすると、JavaScript では動作せず、strict モードだとエラーをスローします:

+

変数の内容の解放

+ +

JavaScript ではプレーンな変数を削除しようとすると動作せず、 strict モードだとエラーをスローします。

'use strict';
 
@@ -48,7 +53,7 @@ delete x;
 // is deprecated
 
-

変数のコンテンツを開放するには、{{jsxref("null")}} を設定します:

+

変数のコンテンツを解放するには、{{jsxref("null")}} を設定してください。

'use strict';
 
@@ -65,6 +70,6 @@ x = null;
 
 
diff --git a/files/ja/web/javascript/reference/errors/deprecated_tolocaleformat/index.html b/files/ja/web/javascript/reference/errors/deprecated_tolocaleformat/index.html
index 685f3537d1..9939c21d2b 100644
--- a/files/ja/web/javascript/reference/errors/deprecated_tolocaleformat/index.html
+++ b/files/ja/web/javascript/reference/errors/deprecated_tolocaleformat/index.html
@@ -9,22 +9,25 @@ translation_of: Web/JavaScript/Reference/Errors/Deprecated_toLocaleFormat
 ---
 
{{jsSidebar("Errors")}}
-

メッセージ

+

JavaScript の警告 "Date.prototype.toLocaleFormat is deprecated; consider using + Intl.DateTimeFormat instead" は、標準外の {{jsxref("Date.prototype.toLocaleFormat")}} メソッドが使用されたときに発生します。

-
Warning: Date.prototype.toLocaleFormat is deprecated; consider using Intl.DateTimeFormat instead
+

エラーメッセージ

+ +
Warning: Date.prototype.toLocaleFormat is deprecated; consider using Intl.DateTimeFormat instead
 
-

エラー種別

+

エラーの種類

-

警告。 JavaScript の実行は停止しません。

+

警告です。 JavaScript の実行は停止しません。

-

エラーの原因

+

エラーの原因

-

非標準の {{jsxref("Date.prototype.toLocaleFormat")}} メソッドは非推奨のため、使用すべきではありません。これは C 言語の strftime() 関数が期待するものと同じフォーマットの文字列を使用します。この関数は Firefox 58 以降ではもう利用できません。

+

非標準の {{jsxref("Date.prototype.toLocaleFormat")}} メソッドは非推奨のため、使用すべきではありません。これは C 言語の strftime() 関数が期待するものと同じフォーマットの文字列を使用します。この関数は Firefox 58 以降では利用できなくなりました。

-

+

-

非推奨の構文

+

非推奨の構文

{{jsxref("Date.prototype.toLocaleFormat")}} メソッドは非推奨で、削除される予定です (クロスブラウザーの対応はなく、 Firefox でのみ使用できます)。

@@ -35,11 +38,11 @@ console.log(date); // In German locale // "Freitag, 10. März 2017"
-

ECMAScript Intl API を使用した代わりの標準構文

+

ECMAScript Intl API を使用した代わりの標準構文

-

ECMA-402 (ECMAScript Intl API) 標準では、言語に敏感な日付と時刻の書式設定を可能にする標準的なオブジェクトとメソッドを指定しています (Chrome 24+、Firefox 29+、IE11+、Safari10+ で使用できます)。

+

ECMA-402 (ECMAScript Intl API) 標準では、言語に敏感な日付と時刻の書式設定を可能にする標準的なオブジェクトとメソッドを指定しています (Chrome 24 以降、Firefox 29 以降、IE11 以降、Safari10 以降で使用できます)。

-

ある日付のフォーマットを指定する場合、{{jsxref("Date.prototype.toLocaleDateString")}} メソッドを使用すべきです。

+

ある日付のフォーマットを指定する場合、 {{jsxref("Date.prototype.toLocaleDateString")}} メソッドを使用すべきです。

var today = new Date();
 var options = { weekday: 'long', year: 'numeric',
@@ -50,7 +53,7 @@ console.log(date);
 // "Freitag, 10. März 2017"
 
-

または、{{jsxref("DateTimeFormat", "Intl.DateTimeFormat")}} オブジェクトを使用できます。これにより、ほとんど計算が完了したオブジェクトをキャッシュして、書式設定が高速になります。これは、日付のフォーマットを繰り返すときに役立ちます。

+

または、 {{jsxref("Intl/DateTimeFormat", "Intl.DateTimeFormat")}} オブジェクトを使用できます。これにより、ほとんど計算が完了したオブジェクトをキャッシュして、書式設定が高速になります。これは、日付の書式化を繰り返すときに役立ちます。

var options = { weekday: 'long', year: 'numeric',
                 month: 'long', day: 'numeric' };
@@ -65,7 +68,7 @@ dates.forEach(date => console.log(dateFormatter.format(date)));
 // "Montag, 12. Mai 2014"
 
-

Date メソッドを使用した代わりの標準構文

+

Date メソッドを使用した代わりの標準構文

{{jsxref("Date")}} オブジェクトは、カスタム日付文字列を構築するいくつかのメソッドを提供しています。

@@ -82,10 +85,10 @@ let date = now.getFullYear() * 10000 + console.log(date); // "20170310"
-

関連情報

+

関連情報

    -
  • {{jsxref("Date.prototype.toLocaleFormat")}}
  • -
  • {{jsxref("Date.prototype.toLocaleDateString")}}
  • -
  • {{jsxref("DateTimeFormat", "Intl.DateTimeFormat")}}
  • +
  • {{jsxref("Date.prototype.toLocaleFormat")}}
  • +
  • {{jsxref("Date.prototype.toLocaleDateString")}}
  • +
  • {{jsxref("Intl/DateTimeFormat", "Intl.DateTimeFormat")}}
diff --git a/files/ja/web/javascript/reference/errors/equal_as_assign/index.html b/files/ja/web/javascript/reference/errors/equal_as_assign/index.html index e8fa400bf1..f123401d42 100644 --- a/files/ja/web/javascript/reference/errors/equal_as_assign/index.html +++ b/files/ja/web/javascript/reference/errors/equal_as_assign/index.html @@ -2,6 +2,7 @@ title: 'SyntaxError: test for equality (==) mistyped as assignment (=)?' slug: Web/JavaScript/Reference/Errors/Equal_as_assign tags: + - Error - Errors - JavaScript - SyntaxError @@ -9,46 +10,47 @@ translation_of: Web/JavaScript/Reference/Errors/Equal_as_assign ---
{{jsSidebar("Errors")}}
-

メッセージ

+

JavaScript の警告 "test for equality (==) mistyped as assignment (=)?" は、代入 (=) が通常は等価性 (==) の検査をすべき場面にあった場合に発生します。

-
Warning: SyntaxError: test for equality (==) mistyped as assignment (=)?
+

エラーメッセージ

+ +
Warning: SyntaxError: test for equality (==) mistyped as assignment (=)?
 

エラータイプ

-

strict モード でのみ、{{jsxref("SyntaxError")}} の警告が出ます。

+

(Firefox のみ) {{jsxref("SyntaxError")}} の警告であり、 javascript.options.strict の設定が true に設定されていた場合に発生します。

何がうまくいかなかったのか?

-

通常、等価テスト(==)が予想されるところで、代入 (=)が行われています。デバッグを行いやすくするために、(厳密な警告が可能になっている)JavaScript は、このパターンについて警告を出します。

+

代入 (=) が通常は等価性 (==) の検査をすべき場面にあった場合に発生します。デバッグを行いやすくするために、 JavaScript は (厳密な警告が有効な場合は) このパターンについて警告を出します。

-

条件式内での代入

+

条件式内での代入

-

if...else のような)条件式内で、ダン純名代入を行わないことをお勧めします。なぜならば、コードを一目見たときに、代入は等価と混同しやすいからです。たとえば、次のコードは使用しないでください:

+

(if...else のような) 条件式内では、単純な代入を行わないことをお勧めします。コードを一目見たときに、代入は等価と混同しやすいからです。たとえば、以下のコードは使用しないでください。

if (x = y) {
-  // 正しいことを実行する。
+  // 正しいことを実行する
 }
 
-

条件式内で代入をする必要がある場合、一般t京奈方法は代入の周りに追加の括弧を置くことです。たとえば:

+

条件式内で代入を行う必要がある場合、一般的には次のように、代入の周りに追加の括弧を置きます。

if ((x = y)) {
-  // 正しいことを実行する。
+  // 正しいことを実行する
 }
-

または、, 比較演算(たとえば、=====)を使用したいのかもしれません:

+

または、本当は比較演算子 (===== など) を使用しようとしたのかもしれません。

if (x == y) {
-  // 正しいことを実行する。
+  // 正しいことを実行する
 }

関連項目

diff --git a/files/ja/web/javascript/reference/errors/getter_only/index.html b/files/ja/web/javascript/reference/errors/getter_only/index.html index 831fb54785..bbd0fcb443 100644 --- a/files/ja/web/javascript/reference/errors/getter_only/index.html +++ b/files/ja/web/javascript/reference/errors/getter_only/index.html @@ -2,32 +2,37 @@ title: 'TypeError: setting getter-only property "x"' slug: Web/JavaScript/Reference/Errors/Getter_only tags: - - Error - - Errors - - JavaScript - - Strict Mode - - TypeError +- Error +- Errors +- JavaScript +- Strict Mode +- TypeError translation_of: Web/JavaScript/Reference/Errors/Getter_only ---
{{jsSidebar("Errors")}}
-

メッセージ

+

JavaScript の strict モード専用の例外 "setting getter-only property" は、ゲッターのみが定義されているプロパティに新しい値を設定しようとした時に発生します。

-
TypeError: setting getter-only property "x" (Firefox)
+

エラーメッセージ

+ +
TypeError: Assignment to read-only properties is not allowed in strict mode (Edge)
+TypeError: setting getter-only property "x" (Firefox)
 TypeError: Cannot set property "prop" of #<Object> which has only a getter (Chrome)
 
-

エラータイプ

+

エラーの種類

strict モードでのみ、{{jsxref("TypeError")}}。

-

何がうまくいかなかったのか?

+

エラーの原因

+ +

ゲッターのみが定義されているプロパティに、新しい値を設定しようとしています。非 strict モードでは暗黙裡に無視されるだけですが、 strict モードでは {{jsxref("TypeError")}} が発生します。

-

getter しか指定されていないプロパティに、新しい値を設定しようとしています。非 strict モードでは暗黙裡に無視されるだけですが、strict モードでは {{jsxref("TypeError")}} がスローされます。

+

-

+

セッターのないプロパティ

-

下記の例では、プロパティの getter の設定方法を示しています。setter は指定していないため、temperature プロパティに 30 をセットしようとすると、TypeError がスローされます。詳細は {{jsxref("Object.defineProperty()")}} ページを見てください。

+

下記の例では、プロパティのゲッターの設定方法を示しています。セッターを指定していないため、 temperature プロパティに 30 を設定しようとすると、TypeError が発生します。詳細は {{jsxref("Object.defineProperty()")}} ページを見てください。

"use strict";
 
@@ -47,7 +52,7 @@ arc.temperature; // 'get!'
 arc.temperature = 30;
 // TypeError: setting getter-only property "temperature"
-

このエラーを修正するには、temperature プロパティに値を設定しようとしている 16 行目を取り除くか、次のように setter を実装します:

+

このエラーを修正するには、 temperature プロパティに値を設定しようとしている 16 行目を取り除くか、次のようにセッターを実装します。

"use strict";
 
@@ -75,9 +80,9 @@ arc.temperature = 11;
 arc.temperature = 13;
 arc.getArchive(); // [{ val: 11 }, { val: 13 }]
-

関連項目

+

関連項目

    -
  • {{jsxref("Object.defineProperty()")}}
  • -
  • {{jsxref("Object.defineProperties()")}}
  • +
  • {{jsxref("Object.defineProperty()")}}
  • +
  • {{jsxref("Object.defineProperties()")}}
-- cgit v1.2.3-54-g00ecf