From c01a85c08973313b08dee7932c0d1b46256a1319 Mon Sep 17 00:00:00 2001 From: inokawa <48897392+inokawa@users.noreply.github.com> Date: Wed, 18 Aug 2021 12:42:30 +0900 Subject: Fix typo (#2071) --- .../javascript/reference/global_objects/webassembly/memory/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'files/ja/web/javascript/reference') diff --git a/files/ja/web/javascript/reference/global_objects/webassembly/memory/index.html b/files/ja/web/javascript/reference/global_objects/webassembly/memory/index.html index 9c93cf21cc..4064df7666 100644 --- a/files/ja/web/javascript/reference/global_objects/webassembly/memory/index.html +++ b/files/ja/web/javascript/reference/global_objects/webassembly/memory/index.html @@ -32,7 +32,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/WebAssembly/Memory
Memory.prototype.constructorFirefox 1.5 ではウェブページ全体をその JavaScript の状態も含めてメモリ内にキャッシュし、1 つのブラウザセッションとして使用します。訪問したページ間の戻る、進むという動作にページのロードが不要になり、JavaScript の状態も保存されます。この機能によってページナビゲーションが非常に高速化します。この機能は bfcache("Back-Forward Cache" のこと)と呼ばれることもあります。このキャッシュ状態はユーザがブラウザを閉じるまで保存されます。
+Firefox 1.5 ではウェブページ全体をその JavaScript の状態も含めてメモリ内にキャッシュし、1 つのブラウザセッションとして使用します。訪問したページ間の戻る、進むという動作にページのロードが不要になり、JavaScript の状態も保存されます。この機能によってページナビゲーションが非常に高速化します。この機能は bfcache("Back-Forward Cache" のこと)と呼ばれることもあります。このキャッシュ状態はユーザがブラウザを閉じるまで保存されます。
Firefox がページをキャッシュしない場合があります。ページがキャッシュされないプログラム的な理由でよくあるものをいくつか以下に示します。
@@ -187,6 +187,6 @@ function loadOnlyFirst() {Firefox 1.5 の 拡張機能 はこのキャッシュ機能を許容するものである必要があります。1.5 とそれより前のバージョンの両方と互換性を持つ Firefox の拡張機能を開発したいのであれば、キャッシュされるようにするトリガについては load イベントをリスンし、キャッシュされないようにするトリガについては pageshow イベントをリスンしてください。
Firefox 1.5 の 拡張機能 はこのキャッシュ機能を許容するものである必要があります。1.5 とそれより前のバージョンの両方と互換性を持つ Firefox の拡張機能を開発したいのであれば、キャッシュされるようにするトリガについては load イベントをリスンし、キャッシュされないようにするトリガについては pageshow イベントをリスンしてください。
例えば Firefox 用 Google ツールバーは、1.5 とそれより前のバージョンの両方と互換性を持たせるためには、autolink 関数については load イベントをリスンすべきであり、PageRank 関数については pageshow イベントをリスンすべきです。
globalStorage のサポートを削除しました。globalStorage のサポートを削除しました。-1 ではなく 0 を返すようになりました。EXT_texture_filter_anisotropic 拡張のサポートを追加しました。異方性テクスチャフィルタリングは、テクスチャが貼り付けられた斜めのプリミティブを表示する際のミップマップテクスチャのアクセスの品質を向上させます。EXT_texture_filter_anisotropic 拡張のサポートを追加しました。異方性テクスチャフィルタリングは、テクスチャが貼り付けられた斜めのプリミティブを表示する際のミップマップテクスチャのアクセスの品質を向上させます。MozBlobBuilder を利用した場合、Web コンソールに警告が表示されます。x プロパティおよび y プロパティは Gecko 7.0 で削除されましたが、互換性の理由でこのリリースから復活しました。execCommandShowHelp() と queryCommandText() は、今まで何もしませんでしたが、削除されました。GeoPositionAddress インタフェースは、Geolocation API で廃止された仕様の一部であり、削除されました。GeoPositionAddress インタフェースは、Geolocation API で廃止された仕様の一部であり、削除されました。null ではなく undefined を正しく返すようになりました。getBrowserSelection() が、テキスト入力フィールドで選択されているテキストを返すようになりました。このため、ユーザがパスワードフィールドではないテキスト入力フィールドでテキストを選択したときに、gContextMenu.isTextSelected が true になります ({{bug("565717")}})。Dict() が JSON 文字列を受け入れるようになりました。Dict.toJSON() メソッドが追加され、これは JSON 文字列を返します ({{bug("727967")}})。Dict() が JSON 文字列を受け入れるようになりました。Dict.toJSON() メソッドが追加され、これは JSON 文字列を返します ({{bug("727967")}})。テストが完了したら、今度は常用のプロファイルを使って、再度その拡張機能を使ってみます。 この作業は、保存されている既存のデータとの互換性を確認するのに役立ちます。
ついに、更新した拡張機能を公開するときが来ました。 もし自分の拡張機能に一切コードの変更が必要ない場合は、AMO のダッシュボードにログインして、互換性のあるバージョンを更新するだけで済みます。 何らかの変更を加えた場合は、新しいバージョンを AMO にアップロードする必要があります。
-詳しくは AMO へのアドオンの登録 を参照してください。
+詳しくは AMO へのアドオンの登録 を参照してください。
Firefox 3.1 以前は、Storage API を使って Places データベースへ直接アクセスする場合、以下のように少々工夫が必要でした。
+Firefox 3.1 以前は、Storage API を使って Places データベースへ直接アクセスする場合、以下のように少々工夫が必要でした。
var places = Components.classes["@mozilla.org/file/directory_service;1"].
getService(Components.interfaces.nsIProperties).
get("ProfD", Components.interfaces.nsIFile);
@@ -42,7 +42,7 @@ var db = Components.classes["@mozilla.org/storage/service;1"].
getService(Components.interfaces.nsPIPlacesDatabase).DBConnection;
textbox の種類のひとつ、timed は廃止予定となりました。代わりに search を使ってください。
textbox の種類のひとつ、timed は廃止予定となりました。代わりに search を使ってください。
Firefox 3 では、以下のようなコードが使われていたはずです。
<textbox type="timed" timeout="1000" oncommand="alert(this.value);"/>@@ -50,7 +50,7 @@ var db = Components.classes["@mozilla.org/storage/service;1"].
<textbox type="search" timeout="1000" oncommand="alert(this.value);"/>
JSON.jsm JavaScript モジュールは Firefox 3.1 では削除され、ネイティブの JSON オブジェクトサポートに置き換えられました。 詳しくは、Firefox で JSON を使用する をご覧ください。JSON のより一般的な概要と、各種バージョンの Firefox で JSON を使う方法については、JSON のページからリンクされている記事を参照してください。
+JSON.jsm JavaScript モジュールは Firefox 3.1 では削除され、ネイティブの JSON オブジェクトサポートに置き換えられました。 詳しくは、Firefox で JSON を使用する をご覧ください。JSON のより一般的な概要と、各種バージョンの Firefox で JSON を使う方法については、JSON のページからリンクされている記事を参照してください。
Firefox 3 と Firefox 3.1 の両方について互換性を確保するには、以下のように記述します。
if (typeof(JSON) == "undefined") {
Components.utils.import("resource://gre/modules/JSON.jsm");
@@ -67,7 +67,7 @@ var db = Components.classes["@mozilla.org/storage/service;1"].
Firefox 3.1 では、カスタマイズ可能なツールバーの挙動が次のように変更されました。<xul:toolbar/> バインディングは、関連付けられた <xul:toolbarpalette/> からツールバー削除、もしくはツールバーへ追加するようになりました。これまでは、項目を複製してツールバーへコピーしていました。 つまり、パレットには、ツールバー上に存在しないアイテムしか含めることができません。これまでの挙動では、ツールバー上に表示されているかどうかに関わらず、カスタマイズ可能なすべての要素が含まれていました。 これは、<xul:toolbarpalette/> からカスタマイズ可能なすべてのツールバー項目を取得できることに依存した処理を行っていたり、ツールバーのカスタマイズ中に動的にパレットへ項目を挿入し、それらを利用可能にしようとしているアドオンで問題となる可能性があります。 詳しくは、{{ Bug(407725) }} と {{ Bug(467045) }} をご覧ください。
興味深い新機能
すべてのタブのイベントを監視する
-Firefox 3.1 では、すべてのタブを監視するプログレスリスナーを追加、削除できるようになりました。 詳しくは、すべてのタブのイベントを監視する をご覧ください。
+Firefox 3.1 では、すべてのタブを監視するプログレスリスナーを追加、削除できるようになりました。 詳しくは、すべてのタブのイベントを監視する をご覧ください。
テーマ開発者の方へ
-最初のステップ、そして、ほとんどの拡張機能にとって必要となるたったひとつのステップは、Firefox 3 との互換性を示すために インストール定義ファイル (install.rdf) を更新する作業です。
最初のステップ、そして、ほとんどの拡張機能にとって必要となるたったひとつのステップは、Firefox 3 との互換性を示すために インストール定義ファイル (install.rdf) を更新する作業です。
ファイルを開いて、互換性がある Firefox の最高バージョンを示す行を見つけます。Firefox 2 向けの拡張機能であれば、以下のように書かれているはずです。
@@ -34,11 +34,11 @@ original_slug: Updating_extensions_for_Firefox_3Firefox 3 は、翻訳された説明文を指定するための新しいプロパティを、インストール定義ファイル内でサポートしています。今までの方法も引き続き動作しますが、この新しい方法を利用すれば、アドオンが無効化されていたりインストールが保留されている場合も、各言語で説明文を表示できるようになります。詳しくは 拡張機能の説明の翻訳 をご覧ください。
+Firefox 3 は、翻訳された説明文を指定するための新しいプロパティを、インストール定義ファイル内でサポートしています。今までの方法も引き続き動作しますが、この新しい方法を利用すれば、アドオンが無効化されていたりインストールが保留されている場合も、各言語で説明文を表示できるようになります。詳しくは 拡張機能の説明の翻訳 をご覧ください。
あなたが独自にアドオンを配布していて、addons.mozilla.org のような安全なアドオン提供サービスを利用していない場合、アドオンの更新に安全な方法を用いる必要があります。つまり、SSL を利用した Web サイト上で更新を提供するか、暗号鍵を使って更新情報に署名する必要があります。詳しくは 安全な更新 をご覧ください。
+あなたが独自にアドオンを配布していて、addons.mozilla.org のような安全なアドオン提供サービスを利用していない場合、アドオンの更新に安全な方法を用いる必要があります。つまり、SSL を利用した Web サイト上で更新を提供するか、暗号鍵を使って更新情報に署名する必要があります。詳しくは 安全な更新 をご覧ください。
あなたの拡張機能から何らかの方法でブックマークや履歴のデータにアクセスしている場合、Firefox 3 と互換性を持たせるには多くの作業が必要です。これらの情報にアクセスするための古い API は、Places という新しいアーキテクチャに置き換えられました。既存の拡張機能を Places API に対応させる方法については、Places への移行ガイド で詳しく解説しています。
+あなたの拡張機能から何らかの方法でブックマークや履歴のデータにアクセスしている場合、Firefox 3 と互換性を持たせるには多くの作業が必要です。これらの情報にアクセスするための古い API は、Places という新しいアーキテクチャに置き換えられました。既存の拡張機能を Places API に対応させる方法については、Places への移行ガイド で詳しく解説しています。
RDF データ形式から Storage API への移行にあたって、ダウンロードマネージャの API にも若干変更が加えられました。これに関する移行作業は非常に簡単なはずです。また、複数のダウンロードマネージャリスナーをサポートするため、ダウンロードの進捗状況を監視する API にも変更がありました。詳しくは nsIDownloadManager、nsIDownloadProgressListener、ダウンロードの監視 を参照してください。
RDF データ形式から Storage API への移行にあたって、ダウンロードマネージャの API にも若干変更が加えられました。これに関する移行作業は非常に簡単なはずです。また、複数のダウンロードマネージャリスナーをサポートするため、ダウンロードの進捗状況を監視する API にも変更がありました。詳しくは nsIDownloadManager、nsIDownloadProgressListener、ダウンロードの監視 を参照してください。
あなたの拡張機能からパスワードマネージャを利用してユーザのログイン情報にアクセスしている場合、新しいログインマネージャ API を利用するように更新する必要があります。
nsILoginInfonsILoginManagernsILoginInfonsILoginManagerあなたが拡張機能の中で独自のパスワードストレージを提供したい場合は、組み込みのパスワードマネージャストレージを上書きすることもできます。詳しくは ログインマネージャ用ストレージモジュールの作成 をご覧ください。
+あなたが拡張機能の中で独自のパスワードストレージを提供したい場合は、組み込みのパスワードマネージャストレージを上書きすることもできます。詳しくは ログインマネージャ用ストレージモジュールの作成 をご覧ください。
XUL のポップアップシステムは Firefox 3 で大幅に変更されました。ポップアップシステムには、メインメニュー、コンテキストメニュー、ポップアップパネルが含まれます。新しいシステムの仕組みについては ポップアップの使用 ガイドをご覧ください。特筆すべき点は、popup. が非推奨となり、新しい showPopuppopup. と openPopuppopup. に置き換えられたことです。openPopupAtScreen
XUL のポップアップシステムは Firefox 3 で大幅に変更されました。ポップアップシステムには、メインメニュー、コンテキストメニュー、ポップアップパネルが含まれます。新しいシステムの仕組みについては ポップアップの使用 ガイドをご覧ください。特筆すべき点は、popup. が非推奨となり、新しい showPopuppopup. と openPopuppopup. に置き換えられたことです。openPopupAtScreen
nsIAutoCompleteController インタフェースの handleEnter() メソッドは、テキストが自動補完ポップアップから選択されたか、ユーザが自分で入力した後 Enter キーを押したかを示す引数を受け付けるよう変更が行われました。
nsIAutoCompleteController インタフェースの handleEnter() メソッドは、テキストが自動補完ポップアップから選択されたか、ユーザが自分で入力した後 Enter キーを押したかを示す引数を受け付けるよう変更が行われました。
chrome://browser/base/utilityOverlay.js は、セキュリティ上の理由からサポートされなくなりました。これまでこのスクリプトを利用していた場合は、chrome://browser/content/utilityOverlay.js へ切り替えてください。nsIAboutModule の実装には、getURIFlags メソッドのサポートが必要になりました。詳しくは nsIAboutModule.idl を参照してください。これは新しい about: URI を提供する拡張機能に影響します (バグ 337746)。tabbrowser 要素は「ツールキット」の一部ではなくなりました (バグ 339964)。このため、この要素は今後 XUL アプリケーションや拡張機能の中では利用できません。ただし、Firefox のメインウィンドウ (browser.xul) では今後も使われます。<?xml-stylesheet ?> などの XML 処理命令を用いている場合、バグ 319654 で行われた以下の変更に注意してください。
document.firstChild が必ずしもルート要素を返すとは限らない、ということを意味します。スクリプト内でルートドキュメントを得るには、代わりに document.documentElement を用いてください。<?xml-stylesheet ?> と <?xul-overlay ?> 処理命令は、ドキュメントの前文以外の場所に書かれた場合、動作しなくなりました。window.addEventListener("load", myFunc, true) が、Web コンテンツが読み込まれた際 (ブラウザのページ読み込み時) に呼び出されなくなりました。これは、inner ウィンドウと outer ウィンドウの関係が変わったことによります (バグ 296639)。簡単な修正方法は、ここ に書かれているように gBrowser.addEventListener("load", myFunc, true) を使うことです。この方法は Firefox 2 でも有効です。window.addEventListener("load", myFunc, true) が、Web コンテンツが読み込まれた際 (ブラウザのページ読み込み時) に呼び出されなくなりました。これは、inner ウィンドウと outer ウィンドウの関係が変わったことによります (バグ 296639)。簡単な修正方法は、ここ に書かれているように gBrowser.addEventListener("load", myFunc, true) を使うことです。この方法は Firefox 2 でも有効です。content.window.getSelection() は、文字列を返す、非推奨となった content.document.getSelection() とは異なり、オブジェクトを返します (toString() を使えば文字列に変換できます)。event.preventBubble() は Firefox 3 で非推奨となり、Firefox 3 で削除されました。Firefox 2 でも動作する event.stopPropagation() を使ってください。event.preventBubble() は Firefox 3 で非推奨となり、Firefox 3 で削除されました。Firefox 2 でも動作する event.stopPropagation() を使ってください。setTimeout() を使って開始されるタイマーは、バグ 52209 のために行われた修正によって、モーダル形式のウィンドウではブロックされるようになりました。代わりに nsITimer を使ってください。contentaccessible フラグ を使わなければなりません。Mozilla ベースのソフトウェアはたいていアドオンを通して拡張可能です。アドオンには、拡張機能、プラグイン、テーマの 3 つの主なタイプがあります。このページはFirefox、Thunderbird、あるいは、Mozilla プラットフォームをベースにしたその他のソフトウェア向けのアドオンを作成するために必要となる情報、および、作成したアドオンを配布する方法のガイドを提供します。
- アドオンに関するトピックス | ||
|
| |
アドオンに関するトピックス | |
|
|
{{ languages( { "en": "en/Developing_add-ons", "zh-cn": "cn/Developing_add-ons"} ) }}
diff --git a/files/ja/orphaned/installing_extensions/index.html b/files/ja/orphaned/installing_extensions/index.html index 2451f21b18..bd870d9056 100644 --- a/files/ja/orphaned/installing_extensions/index.html +++ b/files/ja/orphaned/installing_extensions/index.html @@ -7,7 +7,7 @@ tags: original_slug: Installing_extensions ---{{ Gecko_minversion_header(1.9) }}
-toolkit ベースのアプリケーション(Firefox やその他の XULRunner を使用したアプリケーション)向けの拡張機能をインストールする機能をインストーラに持たせたい場合について、Gecko 1.9(Firefox 3)は Windows、Mac OS X、Linux 上でそれを簡単に行えるようにするための機能を提供します。Windows ユーザについては、当面の所はレジストリを使って拡張機能をインストールする方法も利用できます。
+toolkit ベースのアプリケーション(Firefox やその他の XULRunner を使用したアプリケーション)向けの拡張機能をインストールする機能をインストーラに持たせたい場合について、Gecko 1.9(Firefox 3)は Windows、Mac OS X、Linux 上でそれを簡単に行えるようにするための機能を提供します。Windows ユーザについては、当面の所はレジストリを使って拡張機能をインストールする方法も利用できます。
現在、Mac OS X および Linux においては、ユーザのコンピュータ内のあらかじめ決められた位置のディレクトリに拡張機能をコピーするだけでよいです。
この方法を通じてインストールされた拡張機能については、新しく作成された物・既に存在していた物を問わず、そのアプリケーションのすべてのプロファイルに対してインストールされる事に注意してください。
Gecko 1.9 には、アドオンの説明や他のメタデータのローカライズに関して、新しく、より強力な方法が盛り込まれています。各言語の説明はすべて、em:localized プロパティを使って install.rdf ファイルに書かれます。em:localized それぞれが、情報が使われるべきロケールを示す em:locale プロパティを少なくとも 1 つと、そのロケールの様々な文字列を持ちます。以下の例はこのデモです (ほとんどの一般的なマニフェストプロパティは簡潔にするため削除してあります)。
Gecko 1.9 には、アドオンの説明や他のメタデータのローカライズに関して、新しく、より強力な方法が盛り込まれています。各言語の説明はすべて、em:localized プロパティを使って install.rdf ファイルに書かれます。em:localized それぞれが、情報が使われるべきロケールを示す em:locale プロパティを少なくとも 1 つと、そのロケールの様々な文字列を持ちます。以下の例はこのデモです (ほとんどの一般的なマニフェストプロパティは簡潔にするため削除してあります)。
<?xml version="1.0"?> <RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" @@ -54,14 +54,14 @@ original_slug: Localizing_extension_descriptionsGecko 1.9 以前のローカライズ
Gecko 1.9 以前では、アドオン開発者は、Firefox や Thunderbird のようなツールキットベースのアプリケーションを対象とする拡張機能にローカライズされた説明を定義するためには以下のような特別な手順が必要でした。
<em:id> にあります) に合わせてください。また、LOCALIZED_DESCRIPTION にはその言語での拡張機能の説明を入れてください)。
+ <em:id> にあります) に合わせてください。また、LOCALIZED_DESCRIPTION にはその言語での拡張機能の説明を入れてください)。
extensions.EXTENSION_ID.description=LOCALIZED_DESCRIPTION
pref("extensions.EXTENSION_ID.description", "PATH_TO_LOCALIZATION_FILE");
観察可能なクラスは2つあります: ソケットレベルで発生するものと、HTTPトランザクションレベルで発生するものです。
{{ interface("nsIHttpActivityDistributor") }} メソッドに報告された アクティビティが ACTIVITY_TYPE_SOCKET_TRANSPORT の場合、発生したアクティビティの詳細な型を示すアクティビティサブタイプは socket transport status code となります。
{{ interface("nsIHttpActivityDistributor") }} メソッドに報告された アクティビティが ACTIVITY_TYPE_SOCKET_TRANSPORT の場合、発生したアクティビティの詳細な型を示すアクティビティサブタイプは socket transport status code となります。
アクティビティタイプ が ACTIVITY_TYPE_HTTP_TRANSACTION の場合、アクティビティサブタイプは activity subtype 定数 のうちの1つとなります。これらは送信されるHTTPリクエストヘッダやボディ、受信するHTTPヘッダなどを含むHTTPトランザクション全体を観察するための機能も含みます。
{{ gecko_minversion_header("1.9.1") }}
-UniversalXPConnect 特権を用いたコードを利用することで、周囲の WiFi アクセスポイントの SSID 、 MAC アドレス、信号強度の一覧を取得することができます。この機能は、主に WiFi 情報に基づいた geolocation サービスのために導入されました。
+UniversalXPConnect 特権を用いたコードを利用することで、周囲の WiFi アクセスポイントの SSID 、 MAC アドレス、信号強度の一覧を取得することができます。この機能は、主に WiFi 情報に基づいた geolocation サービスのために導入されました。
この例では、利用可能なアクセスポイントの一覧を出力します。
MozMill はテストツールであり、Gecko ベースのアプリケーション (Firefox, Thunderbird, Songbird 等) の自動テストを書くためのフレームワークです。これは、拡張機能 としてビルドされており、IDE (integrated development environment) も含まれています。また、コマンドライン版のクライアントもあり、テストを書いたり実行したり、テストのデバッグの助けにもなります。MozMill には、ユーザとの対話をシミュレートする機能的なテストを書く助けとなる、大規模な API が用意されています。同様に、完全な ユニットテスト API もあります。
-Mozmill テスト自動化プロジェクト は、2009 年 1 月に開始され、Firefox のための自動テスト作業をカバーしています。プロジェクトのページをご覧になるか、Mozmill Tests のドキュメントを見て、テスト書きへの貢献や MozMill テストの実行についてのイメージをつかんでください。既存のテストは、新しい Firefox のリリースのための リリーステストのサイクルで実行されます。
-また、Mozilla Messaging チームには、MozMill による Thunderbird のテストを扱うアクティブなプロジェクトがあります。
+MozMill はテストツールであり、Gecko ベースのアプリケーション (Firefox, Thunderbird, Songbird 等) の自動テストを書くためのフレームワークです。これは、拡張機能 としてビルドされており、IDE (integrated development environment) も含まれています。また、コマンドライン版のクライアントもあり、テストを書いたり実行したり、テストのデバッグの助けにもなります。MozMill には、ユーザとの対話をシミュレートする機能的なテストを書く助けとなる、大規模な API が用意されています。同様に、完全な ユニットテスト API もあります。
+Mozmill テスト自動化プロジェクト は、2009 年 1 月に開始され、Firefox のための自動テスト作業をカバーしています。プロジェクトのページをご覧になるか、Mozmill Tests のドキュメントを見て、テスト書きへの貢献や MozMill テストの実行についてのイメージをつかんでください。既存のテストは、新しい Firefox のリリースのための リリーステストのサイクルで実行されます。
+また、Mozilla Messaging チームには、MozMill による Thunderbird のテストを扱うアクティブなプロジェクトがあります。
Mozmill は、2 通りの異なる方法でインストールできます。多くの場合は、add-ons.mozilla.org からダウンロードできる Mozmill Extension をお勧めします。この拡張機能には統合された開発環境といくつかのオーサリングツール、テストを実行するためのグラフィカルなインタフェースが含まれています。再起動テストとオペレーティングシステムの対話に興味のある上級ユーザには、python pip (or setuptools) パッケージインストーラを使用した コマンドライン版のクライアント のインストールをお勧めします。
他にも、いくつかの MozMill の概要を説明するページがあります。後で参照するため、これらのページをブックマークに追加しておくと良いでしょう。
-Mozmill は、Mozilla プロジェクト内の多くのテストシステムと同様に、開発段階にあります。バグを見つけたときは、既知のバグ のリストですでに報告されていないか確認してください。まだ報告されていない場合は、"Testing" の製品カテゴリの "Mozmill" コンポーネント下に 新たなバグとして報告してください。バグ報告の際は、バグを再現するためのできるだけ詳細な情報と MozMill のテストを添付してください。よろしくお願いします!
nsIDOMHTMLMediaElement インターフェースは HTML 5 における audio および video 要素の実装に用いられています。
nsIDOMHTMLMediaElement インターフェースは HTML 5 における audio および video 要素の実装に用いられています。
cue ranges 機能の仕様は現在流動的な状況にあり、 HTML 5 標準においては大幅に改訂が加えられるか、置き換えられてしまう可能性があります。そのため、現時点では Firefox ではこの機能に対応していません。void addCueRange(in DOMString className, in float start, in float end, in boolean pauseOnExit, in nsIDOMHTMLVoidCallback enterCallback, in nsIDOMHTMLVoidCallback exitCallback); |
+ void addCueRange(in DOMString className, in float start, in float end, in boolean pauseOnExit, in nsIDOMHTMLVoidCallback enterCallback, in nsIDOMHTMLVoidCallback exitCallback); |
DOMString canPlayType(in DOMString type); |
+ DOMString canPlayType(in DOMString type); |
void load(); |
+ void load(); |
void pause(); |
+ void pause(); |
void play(); |
+ void play(); |
void removeCueRanges(in DOMString className); |
+ void removeCueRanges(in DOMString className); |
videoaudiosourcevideoaudiosource継承元: nsISupports
void onContainerNodeOpening(in nsINavHistoryContainerResultNode aContainer, in nsINavHistoryQueryOptions aOptions);
- void onContainerNodeClosed(in nsINavHistoryContainerResultNode aContainer);
- void onContainerRemoving(in long long aItemId);
- void onContainerMoved(in long long aItemId, in long long aNewParent, in long aNewIndex);
void onContainerNodeOpening(in nsINavHistoryContainerResultNode aContainer, in nsINavHistoryQueryOptions aOptions);
+ void onContainerNodeClosed(in nsINavHistoryContainerResultNode aContainer);
+ void onContainerRemoving(in long long aItemId);
+ void onContainerMoved(in long long aItemId, in long long aNewParent, in long aNewIndex);
与えられたコンテナノードが新たにノードが作成されようとするときに呼ばれます。
@@ -82,7 +82,7 @@ original_slug: nsIDynamicContainer
与えられたコンテナが丁度移動されようとしているときに呼ばれます。bookkeepingを行う処理に備えて存在します。このメソッドはコンテナが移動された後に呼ばれます。
もしあなたが Mozilla プラットフォームに関連するコードでのバグの修正やその他の仕事を手伝うことに興味があるのなら、あなたに適切な方向を指し示すであろう文書がここで見つけられます。
ドキュメンテーショントピックス-
| ツール-
|
{{ languages( { "en": "en/Participating_in_the_Mozilla_project"} ) }}
diff --git a/files/ja/orphaned/tools/add-ons/dom_inspector/index.html b/files/ja/orphaned/tools/add-ons/dom_inspector/index.html index 1d7222b299..cf4b6916f1 100644 --- a/files/ja/orphaned/tools/add-ons/dom_inspector/index.html +++ b/files/ja/orphaned/tools/add-ons/dom_inspector/index.html @@ -26,12 +26,12 @@ original_slug: DOM_InspectorHTML5 は、HTML 標準の最も新しいバージョンです。HTML5 によって、リッチメディアのサポートだけでなく、ユーザ、彼らのローカルデータ、サーバの間でより簡単にかつ効果的にやり取りするための Web アプリケーションを作成するための拡張されたサポートを提供するための新機能も手に入れることができます。
-HTML5 はまだ策定段階にあるため、現在の仕様に対する変更は当然あり得ます。そのため、すべてのブラウザで HTML5 の機能のすべてがサポートされているわけではありません。ですが、Gecko (そしてその拡張である、Firefox) には、素晴らしいほどに、HTML5 の最初の段階のサポートが含まれており、さらなる機能のサポートに対する取り組みを続けています。Gecko は バージョン1.8.1 から HTML5 の機能をサポートし始めました。HTML5 のメインページに Gecko がサポートしている HTML5 の機能のリストがあります。複数ブラウザのサポート状況の詳細な情報については、CanIUse ウェブサイトを参照してください。
+HTML5 はまだ策定段階にあるため、現在の仕様に対する変更は当然あり得ます。そのため、すべてのブラウザで HTML5 の機能のすべてがサポートされているわけではありません。ですが、Gecko (そしてその拡張である、Firefox) には、素晴らしいほどに、HTML5 の最初の段階のサポートが含まれており、さらなる機能のサポートに対する取り組みを続けています。Gecko は バージョン1.8.1 から HTML5 の機能をサポートし始めました。HTML5 のメインページに Gecko がサポートしている HTML5 の機能のリストがあります。複数ブラウザのサポート状況の詳細な情報については、CanIUse ウェブサイトを参照してください。
var re = new RegExp("ab+c");
概念的に、式は 2 つの種類に分けることができます。ある値を変数に代入するものと、単純にある値を持つものです。例えば、x = 7 という式は x に 7 という値を代入する式です。この式自体の評価結果は 7 です。このような式では代入演算子を用います。一方、3 + 4 という式では単純に評価結果が 7 になります。この式は代入を行いません。このような式で用いられる演算子は単に演算子と呼ばれます。
JavaScript には以下の種類の式があります。
{{ PreviousNext("JavaScript/Guide/Unicode", "JavaScript/Guide/Operators") }}
diff --git a/files/ja/orphaned/web/javascript/guide/loop_statements/index.html b/files/ja/orphaned/web/javascript/guide/loop_statements/index.html index 93f9f2c65a..68dab826b1 100644 --- a/files/ja/orphaned/web/javascript/guide/loop_statements/index.html +++ b/files/ja/orphaned/web/javascript/guide/loop_statements/index.html @@ -5,14 +5,14 @@ original_slug: Web/JavaScript/Guide/Loop_Statements ---ループは指定した条件が満たされている限り繰り返し実行されるコマンドのセットです。JavaScript は、label はもちろん、for、do while、while といったループ文をサポートしています(label 自体はループ文ではありませんが、これらの文とともに頻繁に使用されます)。さらに、break および continue 文をループ文の中で使うことができます。
さらに for...in 文も文を繰り返し実行しますが、これはオブジェクトの操作に使用します。オブジェクト操作文 をご覧ください。
さらに for...in 文も文を繰り返し実行しますが、これはオブジェクトの操作に使用します。オブジェクト操作文 をご覧ください。
ループ文は以下のとおりです。
{{ PreviousNext("JavaScript/Guide/Conditional_Statements", "JavaScript/Guide/Loop_Statements/for_Statement") }}
diff --git a/files/ja/orphaned/web/javascript/guide/object_manipulation_statements/index.html b/files/ja/orphaned/web/javascript/guide/object_manipulation_statements/index.html index 48e820e9ae..800a9e95cf 100644 --- a/files/ja/orphaned/web/javascript/guide/object_manipulation_statements/index.html +++ b/files/ja/orphaned/web/javascript/guide/object_manipulation_statements/index.html @@ -6,7 +6,7 @@ original_slug: Web/JavaScript/Guide/Object_Manipulation_StatementsJavaScript はオブジェクトの操作に for...in、for each...in および with 文を使用します。
for...in 文は指定した変数をオブジェクトの全プロパティに対して反復します。それぞれのプロパティに対して JavaScript は指定した文を実行します。for...in 文は次のように使用します。
for...in 文は指定した変数をオブジェクトの全プロパティに対して反復します。それぞれのプロパティに対して JavaScript は指定した文を実行します。for...in 文は次のように使用します。
for (variable in object) {
statements
}
@@ -27,11 +27,11 @@ original_slug: Web/JavaScript/Guide/Object_Manipulation_Statements
car.model = Mustang
配列
- Array の要素に対して反復する方法としてこれを用いることは魅力的かもしれませんが、for...in 文はその配列の要素に加えてユーザ定義プロパティに対して繰り返すため、独自のプロパティやメソッドを追加するなどして Array オブジェクトに変更を加えると for...in 文は数値のインデックスに加えてユーザ定義プロパティの名前を返します。したがって、配列に対して反復したいときには数値のインデックスを用いた従来の for ループを使用したほうがいいでしょう。
for each...in は JavaScript 1.6 で導入されるループ文です。これは for...in に似ていますが、オブジェクトのプロパティの名前ではなく、プロパティの値に対して反復します。
for each...in は JavaScript 1.6 で導入されるループ文です。これは for...in に似ていますが、オブジェクトのプロパティの名前ではなく、プロパティの値に対して反復します。
with 文はデフォルトのオブジェクトについて文のセットを実行します。JavaScript はその文のセットにおいて非修飾名を検索し、その名前がデフォルトのオブジェクトのプロパティであるかを決定します。非修飾名がプロパティにマッチすると、そのプロパティがその文で使われます。そうでない場合はローカル変数かグローバル変数が使われます。
with 文はデフォルトのオブジェクトについて文のセットを実行します。JavaScript はその文のセットにおいて非修飾名を検索し、その名前がデフォルトのオブジェクトのプロパティであるかを決定します。非修飾名がプロパティにマッチすると、そのプロパティがその文で使われます。そうでない場合はローカル変数かグローバル変数が使われます。
with 文は次のように使用します。
with (object) {
statements
@@ -47,6 +47,6 @@ with (Math) {
y = r * sin(PI/2);
}
-注意:with 文を使うことでプログラムをより簡潔にすることができますが、with の不適切な使用はプログラムを大幅にスローダウンさせることに繋がります。Core JavaScript 1.5 Reference:Statements:with を参照してください。
注意:with 文を使うことでプログラムをより簡潔にすることができますが、with の不適切な使用はプログラムを大幅にスローダウンさせることに繋がります。Core JavaScript 1.5 Reference:Statements:with を参照してください。
{{ PreviousNext("JavaScript/Guide/Loop_Statements/continue_Statement", "JavaScript/Guide/Comments") }}
diff --git a/files/ja/orphaned/web/javascript/guide/predefined_functions/escape_and_unescape_functions/index.html b/files/ja/orphaned/web/javascript/guide/predefined_functions/escape_and_unescape_functions/index.html index 6d126722b1..ca2ec31ef2 100644 --- a/files/ja/orphaned/web/javascript/guide/predefined_functions/escape_and_unescape_functions/index.html +++ b/files/ja/orphaned/web/javascript/guide/predefined_functions/escape_and_unescape_functions/index.html @@ -12,5 +12,5 @@ original_slug: Web/JavaScript/Guide/Predefined_Functions/escape_and_unescape_Fun unescape(string)これらの関数は主にサーバサイド JavaScript で URL 中の名前と値のペアのエンコードやデコードに使用されます。
-escape および unescape 関数は 非 ASCII 文字に対しては正しく機能せず、廃止予定になっています。JavaScript 1.5 以降では encodeURI、decodeURI、encodeURIComponent および decodeURIComponent を使用してください。
+ escape および unescape 関数は 非 ASCII 文字に対しては正しく機能せず、廃止予定になっています。JavaScript 1.5 以降では encodeURI、decodeURI、encodeURIComponent および decodeURIComponent を使用してください。
{{ PreviousNext("JavaScript/Guide/Predefined_Functions/Number_and_String_Functions", "JavaScript/Guide/Objects_and_Properties") }}
diff --git a/files/ja/orphaned/web/javascript/guide/predefined_functions/index.html b/files/ja/orphaned/web/javascript/guide/predefined_functions/index.html index 3738bf8da4..e802cc270a 100644 --- a/files/ja/orphaned/web/javascript/guide/predefined_functions/index.html +++ b/files/ja/orphaned/web/javascript/guide/predefined_functions/index.html @@ -7,12 +7,12 @@ original_slug: Web/JavaScript/Guide/Predefined_FunctionsJavaScript にはトップレベルの定義済み関数がいくつかあります。
{{ PreviousNext("JavaScript/Guide/Using_the_arguments_object", "JavaScript/Guide/Predefined_Functions/eval_Function") }}
diff --git a/files/ja/orphaned/web/javascript/guide/the_employee_example/creating_the_hierarchy/index.html b/files/ja/orphaned/web/javascript/guide/the_employee_example/creating_the_hierarchy/index.html index 9ed2621e37..41ec88a890 100644 --- a/files/ja/orphaned/web/javascript/guide/the_employee_example/creating_the_hierarchy/index.html +++ b/files/ja/orphaned/web/javascript/guide/the_employee_example/creating_the_hierarchy/index.html @@ -6,7 +6,7 @@ original_slug: Web/JavaScript/Guide/The_Employee_Example/Creating_the_HierarchyEmployee の階層を実装するための適当なコンストラクタ関数を定義する方法はいくつかあります。これの定義に何を選択するかは、アプリケーションで何ができるようにしたいかに大きくよります。
このセクションではとても単純(かつ比較的柔軟でない)定義の使用方法を示し、継承を機能させる方法を実際に示します。これらの定義では、オブジェクト作成時に何らかのプロパティの値を指定することはできません。新しく作成されるオブジェクトは単にデフォルトの値を取得するだけです。これは後から変更できます。図 8.2 ではこれらの単純な定義を備えた階層を例示します。
-実際のアプリケーションでは、オブジェクト作成時にプロパティの値を設定できるようにするコンストラクタを定義することになるでしょう(詳しくは より柔軟なコンストラクタ を参照)。今回はこれらの単純な定義を使用して、継承はどのようにして起こるのかを実際に示していくことにします。
+実際のアプリケーションでは、オブジェクト作成時にプロパティの値を設定できるようにするコンストラクタを定義することになるでしょう(詳しくは より柔軟なコンストラクタ を参照)。今回はこれらの単純な定義を使用して、継承はどのようにして起こるのかを実際に示していくことにします。

図 8.2:Employee オブジェクトの定義
以下に示すように、Java と JavaScript の Employee の定義は似ています。唯一の相違点は、Java では各プロパティに対して型を指定する必要があるのに対して、JavaScript ではその必要がないことです。また、Java のクラスでは明示的なコンストラクタメソッドを作成する必要があります。
残りの例:
{{ PreviousNext("Core_JavaScript_1.5_Guide:Class-Based_vs._Prototype-Based_Languages", "Core_JavaScript_1.5_Guide:The_Employee_Example:Creating_the_Hierarchy") }}
diff --git a/files/ja/orphaned/web/javascript/guide/the_employee_example/object_properties/index.html b/files/ja/orphaned/web/javascript/guide/the_employee_example/object_properties/index.html index 80c2494cf2..2cf27ea0ba 100644 --- a/files/ja/orphaned/web/javascript/guide/the_employee_example/object_properties/index.html +++ b/files/ja/orphaned/web/javascript/guide/the_employee_example/object_properties/index.html @@ -6,8 +6,8 @@ original_slug: Web/JavaScript/Guide/The_Employee_Example/Object_Propertiesこのセクションでは、プロトタイプチェーンにおいてオブジェクトが他のオブジェクトからどのようにプロパティを継承するのか、また、実行時にプロパティを追加すると何が起きるのかについて論じます。
{{ PreviousNext("Core_JavaScript_1.5_Guide:The_Employee_Example:Creating_the_Hierarchy", "Core_JavaScript_1.5_Guide:The_Employee_Example:Object_Properties:Inheriting_Properties") }}
diff --git a/files/ja/orphaned/web/javascript/guide/the_employee_example/object_properties/inheriting_properties/index.html b/files/ja/orphaned/web/javascript/guide/the_employee_example/object_properties/inheriting_properties/index.html index 159c3c4e01..b860b5871f 100644 --- a/files/ja/orphaned/web/javascript/guide/the_employee_example/object_properties/inheriting_properties/index.html +++ b/files/ja/orphaned/web/javascript/guide/the_employee_example/object_properties/inheriting_properties/index.html @@ -6,7 +6,7 @@ original_slug: >- Web/JavaScript/Guide/The_Employee_Example/Object_Properties/Inheriting_Properties ---次の文を用いて(図 8.3 で示したように)mark オブジェクトを WorkerBee として作成するとします。
次の文を用いて(図 8.3 で示したように)mark オブジェクトを WorkerBee として作成するとします。
mark = new WorkerBee;
JavaScript は new 演算子に出くわすと、新しく汎用オブジェクトを生成し、この新しいオブジェクトを this キーワードの値として WorkerBee コンストラクタ関数に渡します。コンストラクタ関数は明示的に projects プロパティの値をセットします。さらに、内部的な __proto__ プロパティの値として WorkerBee.prototype の値をセットします。(このプロパティ名は最初と最後に 2 文字ずつのアンダースコアが付いています。)__proto__ プロパティはプロパティの値を返すのに使用されるプロトタイプチェーンを決定します。これらのプロパティがセットされると JavaScript は新しいオブジェクトを返し、代入文は変数 mark にそのオブジェクトをセットします。
mark オブジェクトは mark.__proto__ の原型的なオブジェクトから name および dept プロパティの値を継承します。WorkerBee コンストラクタによって projects プロパティにローカルの値が代入されます。このことでプロパティとその値を継承することができます。このプロセスの細かいところは プロパティの継承、再び にて議論します。
mark オブジェクトは mark.__proto__ の原型的なオブジェクトから name および dept プロパティの値を継承します。WorkerBee コンストラクタによって projects プロパティにローカルの値が代入されます。このことでプロパティとその値を継承することができます。このプロセスの細かいところは プロパティの継承、再び にて議論します。
これらのコンストラクタにインスタンス固有の値を渡せないため、この情報は汎用的になります。プロパティの値は WorkerBee によって作成されるすべての新しいオブジェクトに共有される、デフォルトの値になります。もちろん、これらのどのプロパティのでもその値を変えることができます。そのためには次のようにして mark に固有の情報を与えます。
mark.name = "Doe, Mark";
mark.dept = "admin";
diff --git a/files/ja/orphaned/web/javascript/guide/using_the_arguments_object/index.html b/files/ja/orphaned/web/javascript/guide/using_the_arguments_object/index.html
index 18259c91ce..446895507c 100644
--- a/files/ja/orphaned/web/javascript/guide/using_the_arguments_object/index.html
+++ b/files/ja/orphaned/web/javascript/guide/using_the_arguments_object/index.html
@@ -30,7 +30,7 @@ myConcat("; ", "elephant", "giraffe", "lion", "cheetah");
// "sage. basil. oregano. pepper. parsley. " を返す
myConcat(". ", "sage", "basil", "oregano", "pepper", "parsley");
- さらなる情報については、コア JavaScript リファレンスの Function オブジェクト をご覧ください。
+さらなる情報については、コア JavaScript リファレンスの Function オブジェクト をご覧ください。
JavaScript 1.3 以前のバージョン
arguments オブジェクトは Function オブジェクトのプロパティであり、次のように関数の名前を前に付けることができます。
正規表現パターンは、/abc/ のような単純な文字、または /ab*c/ や /Chapter (\d+)\.\d*/ のような単純な文字と特殊文字との組み合わせからなります。最後の例では記憶装置として使われている丸括弧が含まれています。パターンのこの部分でなされたマッチは後で使用できるように記憶されます。詳しくは 括弧で囲まれた部分文字列のマッチの使用 を参照してください。
正規表現パターンは、/abc/ のような単純な文字、または /ab*c/ や /Chapter (\d+)\.\d*/ のような単純な文字と特殊文字との組み合わせからなります。最後の例では記憶装置として使われている丸括弧が含まれています。パターンのこの部分でなされたマッチは後で使用できるように記憶されます。詳しくは 括弧で囲まれた部分文字列のマッチの使用 を参照してください。
正規表現パターンの一部分を括弧で囲むことで、マッチした部分文字列のその部分を記憶しておくことができます。一度記憶すると、後からその部分文字列を呼び戻すことができます。これに関しては 括弧で囲まれた部分文字列のマッチの使用 で説明しています。
+正規表現パターンの一部分を括弧で囲むことで、マッチした部分文字列のその部分を記憶しておくことができます。一度記憶すると、後からその部分文字列を呼び戻すことができます。これに関しては 括弧で囲まれた部分文字列のマッチの使用 で説明しています。
例えば、/Chapter (\d+)\.\d*/ というパターンでは、エスケープされた文字と特殊文字の部分がその例で、その部分を記憶するように指示しています。これは 'Chapter ' という文字列、それに続く 1 文字以上の数字(\d はいずれかの数字を意味し、+ は 1 回以上の繰り返しを意味する)、それに続く小数点(それ自体は特殊文字であり、小数点の前の \ はパターンが '.' という文字そのものを探すようにすることを意味する)、それに続く 0 文字以上の数字(\d は数字を意味し、* は 0 回以上の繰り返しを意味する)にマッチします。さらに、括弧を使うことで最初のマッチした数値を記憶させます。
HTML 以外の文書の場合。 DOM の実装では、どの属性が ID 類であるかを示す情報が必要です。 "id" という名前の属性は、文書の DTD で定義されていない限り ID 類とみなされません。 id 属性は XHTML, XUL などの一般的な場合には ID 類として定義されています。属性が ID 類であるかどうかが分からない実装では、 null を返すでしょう。
HTML 以外の文書の場合。 DOM の実装では、どの属性が ID 類であるかを示す情報が必要です。 "id" という名前の属性は、文書の DTD で定義されていない限り ID 類とみなされません。 id 属性は XHTML, XUL などの一般的な場合には ID 類として定義されています。属性が ID 類であるかどうかが分からない実装では、 null を返すでしょう。
'div.myclass' のようなセレクターを通したクエリのためのもの。getElementById() による XML 文書 (Ajax 呼び出しによって返されるものなど) の 'xml:id' の取得を可能とする便利なメソッドを持つgetElementById() による XML 文書 (Ajax 呼び出しによって返されるものなど) の 'xml:id' の取得を可能とする便利なメソッドを持つ{{APIRef("DOM")}}
-DOMString (strings) のリストを含むいくつかの API が返す型です。
+DOMString (strings) のリストを含むいくつかの API が返す型です。
<code>getAttributeNodeNS</code> is more specific than getAttributeNode in that it allows you to specify attributes that are part of a particular namespace. The corresponding setter method is setAttributeNodeNS. getAttributeNodeNS は特定の名前空間の一部である属性を指定できるという点で getAttributeNodeより特殊です。対応するsetterメソッドはsetAttributeNodeNSです。
<code>getAttributeNodeNS</code> is more specific than getAttributeNode in that it allows you to specify attributes that are part of a particular namespace. The corresponding setter method is setAttributeNodeNS. getAttributeNodeNS は特定の名前空間の一部である属性を指定できるという点で getAttributeNodeより特殊です。対応するsetterメソッドはsetAttributeNodeNSです。
{{ DOMAttributeMethods() }}== Specification ==
diff --git a/files/ja/web/api/history_api/working_with_the_history_api/index.html b/files/ja/web/api/history_api/working_with_the_history_api/index.html index c7b71399b2..a2fb053d73 100644 --- a/files/ja/web/api/history_api/working_with_the_history_api/index.html +++ b/files/ja/web/api/history_api/working_with_the_history_api/index.html @@ -54,7 +54,7 @@ history.pushState(stateObj, "page 2", "bar.html"); -ある意味では、pushState() の呼び出しは window.location = "#foo"; と設定するのと似ています。どちらも、現在のドキュメントに関連する別の履歴エントリの生成とアクティベートを行います。ですが pushState() にはいくらかの利点があります:
具体的には、何らかのユーザーのアクションを受け、現在の履歴エントリの URL または state オブジェクトを更新したい場合に replaceState() が役立ちます。
Mozillaはいくつかの非標準の機能によって、複数の項目のドラッグをサポートしています。それらの機能はtypesプロパティやgetData、setData、clearDataの各メソッドに酷似していますが、データの取得や変更、削除の際などに項目のインデックスを追加の引数として要求します。
-mozSetDataAtを使うと、dragstartイベントで複数の項目を登録することができます。これはsetDataメソッドとよく似た働きをします。
Mozillaはいくつかの非標準の機能によって、複数の項目のドラッグをサポートしています。それらの機能はtypesプロパティやgetData、setData、clearDataの各メソッドに酷似していますが、データの取得や変更、削除の際などに項目のインデックスを追加の引数として要求します。
+mozSetDataAtを使うと、dragstartイベントで複数の項目を登録することができます。これはsetDataメソッドとよく似た働きをします。
var dt = event.dataTransfer;
dt.mozSetDataAt("text/plain", "ドラッグされるデータ", 0);
dt.mozSetDataAt("text/plain", "ドラッグされる2つめのデータ", 1);
-この例では2つのドラッグ項目を追加しています。最後の引数は追加する項目のインデックスを示しています。これらの項目は0番から順番に登録するべきで、最後の方(インデックスの大きなもの)から逆順に登録することはできません。また、すでにデータが登録されているインデックスを指定してもう1度データを登録すると、前に登録したデータを置き換えることができます。インデックスとして0を指定すると、setDataメソッドを呼んだのと等しく扱われます。
-mozClearDataAtメソッドを使って、指定した項目を削除することもできます。
+この例では2つのドラッグ項目を追加しています。最後の引数は追加する項目のインデックスを示しています。これらの項目は0番から順番に登録するべきで、最後の方(インデックスの大きなもの)から逆順に登録することはできません。また、すでにデータが登録されているインデックスを指定してもう1度データを登録すると、前に登録したデータを置き換えることができます。インデックスとして0を指定すると、setDataメソッドを呼んだのと等しく扱われます。
+mozClearDataAtメソッドを使って、指定した項目を削除することもできます。
event.dataTransfer.mozClearDataAt("text/plain", 1);
あるインデックスで示される項目について、最後のデータ形式の削除によって項目全体を削除すると、残りの項目が繰り上がって項目のインデックスが変わることに注意してください。例えば、
@@ -36,9 +36,9 @@ dt.mozClearDataAt("text/plain", 1);幸いなことに、通常は項目を削除する必要がある場合は希で、それよりも、必要に応じて項目を追加するだけの場合の方がずっと多いです。
複数の項目のドラッグが使われる場合の代表は、複数のファイルやブックマークをドラッグする時です。この場合には、適切な形式でそれらの項目を追加してください。また必須ではありませんが、それぞれの項目は常に同じ形式でデータを追加するべきです。これによりドロップ対象は、一貫したデータの受け取りを期待できます。
-複数のファイルがドラッグされているかどうかを確認するには、mozItemCountプロパティを調べます。このプロパティにはドラッグされている項目の数がセットされます。もしそのドロップ対象が1つの項目のドロップだけを受け付ける場合には、ドラッグされた項目すべてを拒否することもできますし、最初の項目だけを受け取ることもできます。複数の項目の受け取りを拒否するには、dragoverイベントをキャンセルしないか、effectAllowedプロパティにnoneを指定します。他のイベントリスナがすでにイベントをキャンセルしている場合に備えて、両方を実行しても構いません。
ドロップされた項目のうち最初の項目だけを扱う場合は、1つだけの項目のドラッグの場合と同様にgetDataを使います。これは、何も追加の処理が必要ないドロップ項目を1つだけ受け取るドロップ対象のために有用です。
-それに対して、任意のインデックスの項目をデータトランスファーから取得するにはmozGetDataAtメソッドを使います。以下の例は、ドラッグされたファイルを取得し、それらを配列に追加するものです。
+複数のファイルがドラッグされているかどうかを確認するには、mozItemCountプロパティを調べます。このプロパティにはドラッグされている項目の数がセットされます。もしそのドロップ対象が1つの項目のドロップだけを受け付ける場合には、ドラッグされた項目すべてを拒否することもできますし、最初の項目だけを受け取ることもできます。複数の項目の受け取りを拒否するには、dragoverイベントをキャンセルしないか、effectAllowedプロパティにnoneを指定します。他のイベントリスナがすでにイベントをキャンセルしている場合に備えて、両方を実行しても構いません。
ドロップされた項目のうち最初の項目だけを扱う場合は、1つだけの項目のドラッグの場合と同様にgetDataを使います。これは、何も追加の処理が必要ないドロップ項目を1つだけ受け取るドロップ対象のために有用です。
+それに対して、任意のインデックスの項目をデータトランスファーから取得するにはmozGetDataAtメソッドを使います。以下の例は、ドラッグされたファイルを取得し、それらを配列に追加するものです。
function onDrop(event)
{
var files = [];
@@ -47,15 +47,15 @@ dt.mozClearDataAt("text/plain", 1);
files.push(dt.mozGetDataAt("application/x-moz-file", i));
}
-mozTypesAtメソッドを使って、望んでいる形式のデータが存在しているかどうかを確かめたいとも思うでしょう。typesプロパティと同様に、このメソッドは、その項目が保持しているデータの型の文字列を返します。typesプロパティを取得する事は、インデックスが0の項目の型のリストを取得する事に等しいです。
+mozTypesAtメソッドを使って、望んでいる形式のデータが存在しているかどうかを確かめたいとも思うでしょう。typesプロパティと同様に、このメソッドは、その項目が保持しているデータの型の文字列を返します。typesプロパティを取得する事は、インデックスが0の項目の型のリストを取得する事に等しいです。
var types = event.dataTransfer.mozTypesAt(1);
上で解説した追加のメソッドが扱えるデータは文字列に限定されず、どんな種類のデータでも指定することができます。例えば、ファイルはapplication/x-moz-file型でnsIFileのオブジェクトとして保持されてドラッグされます。setDataメソッドは文字列しかサポートしておらず、 ドラッグするファイルを指定するのには利用できないため、代わりにmozSetDataAtメソッドを使わなくてはなりません。
上で解説した追加のメソッドが扱えるデータは文字列に限定されず、どんな種類のデータでも指定することができます。例えば、ファイルはapplication/x-moz-file型でnsIFileのオブジェクトとして保持されてドラッグされます。setDataメソッドは文字列しかサポートしておらず、 ドラッグするファイルを指定するのには利用できないため、代わりにmozSetDataAtメソッドを使わなくてはなりません。
dt.mozSetDataAt("application/x-moz-file", file, 0);
複数の項目を扱う必要がない場合でも、このメソッドを使うことによって任意のオブジェクトをデータに指定できます。この場合には、インデックスとして0を指定しておきます。
-同様に、ファイルやその他のオブジェクトを取得するにはmozGetDataAtメソッドを使う必要があります。もしgetDataを使った場合は、値が文字列でない型のデータは空文字として取得されます。ただし、数値のような単純な型のデータについては文字列に変換できるため、この場合はgetDataを使っても問題ありません。
+同様に、ファイルやその他のオブジェクトを取得するにはmozGetDataAtメソッドを使う必要があります。もしgetDataを使った場合は、値が文字列でない型のデータは空文字として取得されます。ただし、数値のような単純な型のデータについては文字列に変換できるため、この場合はgetDataを使っても問題ありません。
以下は、ドロップされた項目のデータとその形式を一覧表示するボックスの例です。
<html> @@ -103,7 +103,7 @@ function output(text) </body> </html>-
この例は、preventDefaultメソッドによってdragenterイベントとdragoverイベントを両方ともキャンセルします。これにより、要素の上でのドロップが可能になっています。
項目をドロップした時に、dodrop関数が呼ばれます。この関数はmozItemCountプロパティを見て、いくつの項目がドロップされたのかを調べ、それらに繰り返し処理を行います。それぞれの項目について、型の一覧を得るためにmozTypesAtメソッドが呼ばれます。この一覧の生成処理は、ドラッグに対して関連づけられたすべてのデータに対して繰り返されます。
この例は、preventDefaultメソッドによってdragenterイベントとdragoverイベントを両方ともキャンセルします。これにより、要素の上でのドロップが可能になっています。
項目をドロップした時に、dodrop関数が呼ばれます。この関数はmozItemCountプロパティを見て、いくつの項目がドロップされたのかを調べ、それらに繰り返し処理を行います。それぞれの項目について、型の一覧を得るためにmozTypesAtメソッドが呼ばれます。この一覧の生成処理は、ドラッグに対して関連づけられたすべてのデータに対して繰り返されます。
この例は、あるドラッグ操作が保持しているデータを確かめたい時に便利です。ただ項目をこの例のドロップ対象にドロップするだけで、ドラッグされたどの項目がどんな形式でどのようなデータを保持しているのかを見ることができます。
{{ languages( { "en": "En/DragDrop/Dragging_and_Dropping_Multiple_Items" } ) }}
diff --git a/files/ja/web/api/xmlserializer/index.html b/files/ja/web/api/xmlserializer/index.html index 48bd19f8e5..1bae104f64 100644 --- a/files/ja/web/api/xmlserializer/index.html +++ b/files/ja/web/api/xmlserializer/index.html @@ -96,7 +96,7 @@ document.body.insertAdjacentHTML('afterbegin', inp_xmls);値を持たない非継承プロパティが要素に指定された場合、要素はプロパティの初期値(※各プロパティのページの「概要」の章に記されています)を取得します。
+値を持たない非継承プロパティが要素に指定された場合、要素はプロパティの初期値(※各プロパティのページの「概要」の章に記されています)を取得します。
非継承プロパティの一般的な例としては {{ Cssxref("border") }} プロパティが挙げられます。次の様なスタイルルールを指定し、
diff --git a/files/ja/web/css/padding-bottom/index.html b/files/ja/web/css/padding-bottom/index.html index 877b22fa80..8aa21ff9bb 100644 --- a/files/ja/web/css/padding-bottom/index.html +++ b/files/ja/web/css/padding-bottom/index.html @@ -104,7 +104,7 @@ padding-bottom: unset;このページは、 CSS Getting Started チュートリアルにあるチャレンジの解答例です。これ以外の解答も考えられます。以下の章名はチュートリアルページのタイトルと一致します。
+このページは、 CSS Getting Started チュートリアルにあるチャレンジの解答例です。これ以外の解答も考えられます。以下の章名はチュートリアルページのタイトルと一致します。
orange, yellow, blue, green, or black. It also supports some more exotic color names like chartreuse, fuschia, or burlywood. See CSS Color value for a complete list as well as other ways of specifying colors.orange, yellow, blue, green, or black. It also supports some more exotic color names like chartreuse, fuschia, or burlywood. See CSS Color value for a complete list as well as other ways of specifying colors.
さらに、 Mozilla には、ドキュメントが designMode になると、そのドキュメント内のイベントが無効になるという特徴があります。designMode をオフにすると (Mozilla 1.5 ではこの切り替えが可能となります)、再びイベントはアクティブになります。
-さらなる情報 は、Migrate apps from Internet Explorer to Mozilla の Rich text editing の節をご覧ください。
+さらなる情報 は、Migrate apps from Internet Explorer to Mozilla の Rich text editing の節をご覧ください。
designModeこの要素は、すべての要素が持つ グローバル属性 以外の属性を持ちません。
+この要素は、すべての要素が持つ グローバル属性 以外の属性を持ちません。
JavaScript® は、米国およびその他の国における、Oracle の商標または登録商標です。
diff --git a/files/ja/web/javascript/guide/working_with_objects/index.html b/files/ja/web/javascript/guide/working_with_objects/index.html index 6200e1aa36..bf382dd5c7 100644 --- a/files/ja/web/javascript/guide/working_with_objects/index.html +++ b/files/ja/web/javascript/guide/working_with_objects/index.html @@ -109,10 +109,10 @@ myCar.year = 1969ECMAScript 5 以降では、オブジェクトのプロパティをリストアップ/トラバース (横断走査) する言語特有の方法が 3 つあります。
+ECMAScript 5 以降では、オブジェクトのプロパティをリストアップ/トラバース (横断走査) する言語特有の方法が 3 つあります。
for...in ループfor...in ループ詳しくは、JavaScript リファレンス内にある、Function オブジェクトの prototype プロパティを参照してください。
詳しくは、JavaScript リファレンス内にある、Function オブジェクトの prototype プロパティを参照してください。
Strict モードはスクリプト全体または個別の関数に適用できます。括弧 {} で括られるブロック構文には適用できません。そのような場所に適用しようとしても何も起きません。eval コード、Function コード、イベントハンドラ属性、setTimeout コードに渡す文字列、およびこれらに似たものはスクリプト全体であり、Strict モードを呼び出すと期待どおりに動作します。
Strict モードはスクリプト全体または個別の関数に適用できます。括弧 {} で括られるブロック構文には適用できません。そのような場所に適用しようとしても何も起きません。eval コード、Function コード、イベントハンドラ属性、setTimeout コードに渡す文字列、およびこれらに似たものはスクリプト全体であり、Strict モードを呼び出すと期待どおりに動作します。
第二に、Strict モードでは、代入文で暗黙的に失敗せずに例外が発生するようにします。例えば、NaN は書き込み不可のグローバル変数です。通常のコードでは NaN に代入しても何も起きません。つまり、開発者は失敗したという通知を受けません。Strict モードでは NaN に代入すると例外が発生します。通常のコードで暗黙的に失敗する代入 (書き込み不可のプロパティへの代入、getter のみのプロパティへの代入、拡張不可 オブジェクトへの新規プロパティ割り当て) について、Strict モードでは例外が発生します:
第二に、Strict モードでは、代入文で暗黙的に失敗せずに例外が発生するようにします。例えば、NaN は書き込み不可のグローバル変数です。通常のコードでは NaN に代入しても何も起きません。つまり、開発者は失敗したという通知を受けません。Strict モードでは NaN に代入すると例外が発生します。通常のコードで暗黙的に失敗する代入 (書き込み不可のプロパティへの代入、getter のみのプロパティへの代入、拡張不可 オブジェクトへの新規プロパティ割り当て) について、Strict モードでは例外が発生します:
'use strict'; @@ -257,7 +257,7 @@ f(); // TypeError が投げられますStrict モードにより"セキュアな" JavaScript の記述がより簡単になります。現在、一部の Web サイトではユーザー向に対し、Web サイトの他のユーザーが実行することができる JavaScript を記述する方法を提供しています。ブラウザー上の JavaScript はユーザーの個人的な情報にアクセスできることから、そのような JavaScript は禁じられた機能へのアクセスを削除するよう、実行前に部分的に変換する必要があります。JavaScript の柔軟性は、ランタイムによる多くのチェックなしにこれを行うことを事実上不可能にします。ある言語機能は、ランタイムのチェック実行にかなりパフォーマンスのコストがかかるとして広まっています。Strict モードのいくつかの調整、そしてユーザーが投稿した JavaScript が Strict モードのコードであることや信頼できる方法で呼び出されることの要求により、ランタイムのチェックの必要性をかなり減らします。
-第一に、Strict モードでは、
+thisとして関数に渡された値をオブジェクトへボクシングしません。非ストリクトモードでの関数にとってthisは常にオブジェクトになります。this の値は、実行時に this オブジェクト値として提供されたオブジェクトであったり、真偽値・文字列・数値などのプリミティブな値がthisとして呼び出した時はオブジェクトへボクシングした値、{{Glossary("Undefined", "undefined")}}または{{Glossary("Null", "null")}}のthisで呼び出された時はグローバルオブジェクトとなります。(特定のthisを指定するためにcall、apply、bindを使用してください)。自動的なボクシングはパフォーマンス上のコストがあり、しかしブラウザーでグローバルオブジェクトを公開することは、"セキュアな" JavaScript 環境へのアクセスを提供するグローバルオブジェクトを制限する必要があるためにセキュリティ上の危険性があります。従って Strict モードの関数では、指定されたthisを変更せずに使用します:第一に、Strict モードでは、
thisとして関数に渡された値をオブジェクトへボクシングしません。非ストリクトモードでの関数にとってthisは常にオブジェクトになります。this の値は、実行時に this オブジェクト値として提供されたオブジェクトであったり、真偽値・文字列・数値などのプリミティブな値がthisとして呼び出した時はオブジェクトへボクシングした値、{{Glossary("Undefined", "undefined")}}または{{Glossary("Null", "null")}}のthisで呼び出された時はグローバルオブジェクトとなります。(特定のthisを指定するためにcall、apply、bindを使用してください)。自動的なボクシングはパフォーマンス上のコストがあり、しかしブラウザーでグローバルオブジェクトを公開することは、"セキュアな" JavaScript 環境へのアクセスを提供するグローバルオブジェクトを制限する必要があるためにセキュリティ上の危険性があります。従って Strict モードの関数では、指定されたthisを変更せずに使用します:'use strict'; function fun() { return this; } diff --git a/files/ja/web/security/securing_your_site/index.html b/files/ja/web/security/securing_your_site/index.html index 8d375d18b7..915c555d8c 100644 --- a/files/ja/web/security/securing_your_site/index.html +++ b/files/ja/web/security/securing_your_site/index.html @@ -19,7 +19,7 @@ translation_of: Web/Security/Securing_your_site
getComputedStyle() メソッドに加えられた変更について議論しています。Strict-Transport-Security: HTTP ヘッダーを使うと、そのサイトが HTTPS でのみアクセスされるべきであるということを示すことができます。Strict-Transport-Security: HTTP ヘッダーを使うと、そのサイトが HTTPS でのみアクセスされるべきであるということを示すことができます。stroke-linecap 要素は線を引いた時の開いている部分パスの終端の形状を指定します。
以下の要素で stroke-linecap を使うことができます
stroke-linejoin 属性は線を引いた時のパスの曲がりまたは基本的な輪郭の形状を指定します。
以下の要素で stroke-linejoin 属性を使うことができます
diff --git a/files/ja/web/svg/compatibility_sources/index.html b/files/ja/web/svg/compatibility_sources/index.html index 062a2f701d..0b4c730fb7 100644 --- a/files/ja/web/svg/compatibility_sources/index.html +++ b/files/ja/web/svg/compatibility_sources/index.html @@ -8,7 +8,7 @@ translation_of: Web/SVG/Compatibility_sources
以下の情報源が SVG 要素と属性の互換性の確認に活用できます。
Firefox 4 より、Synchronized Multimedia Integration Language (SMIL) を用いた SVG のアニメーションをサポートしています。SMIL では以下のようなことができます:
+Firefox 4 より、Synchronized Multimedia Integration Language (SMIL) を用いた SVG のアニメーションをサポートしています。SMIL では以下のようなことができます:
stroke、stroke-width および fill の各属性は後のチュートリアルで説明します。rect 要素は、おそらくあなたの予想とまったく同じで、スクリーンに長方形を描画します。この要素にはスクリーン上の位置や形状を操作する、6 種類の基本的な属性があります。前出の画像には 2 つの rect 要素があり、それは少し冗長になっています。右側の長方形は rx および ry 属性があり、これは角を丸くします。これらを設定しない場合、初期値は 0 になります。
+rect 要素は、おそらくあなたの予想とまったく同じで、スクリーンに長方形を描画します。この要素にはスクリーン上の位置や形状を操作する、6 種類の基本的な属性があります。前出の画像には 2 つの rect 要素があり、それは少し冗長になっています。右側の長方形は rx および ry 属性があり、これは角を丸くします。これらを設定しない場合、初期値は 0 になります。
<rect x="10" y="10" width="30" height="30"/> <rect x="60" y="10" rx="10" ry="10" width="30" height="30"/>
おそらくあなたの推測どおりで、circle 要素はスクリーンに円を描画します。ここで適用できる属性は 3 種類です。
+おそらくあなたの推測どおりで、circle 要素はスクリーンに円を描画します。ここで適用できる属性は 3 種類です。
<circle cx="25" cy="75" r="20"/>
ellipse は、実は circle 要素のより一般的な形であり、円の X 方向および Y 方向の半径 (数学者は一般的に長半径および短半径と呼びます) を分けて調節することができます。
+ellipse は、実は circle 要素のより一般的な形であり、円の X 方向および Y 方向の半径 (数学者は一般的に長半径および短半径と呼びます) を分けて調節することができます。
<ellipse cx="75" cy="75" rx="20" ry="5"/>
line は直線を描画します。これは線の始点と終点になる 2 つの点を示す属性を持ちます。
+line は直線を描画します。これは線の始点と終点になる 2 つの点を示す属性を持ちます。
<line x1="10" x2="50" y1="110" y2="150"/>
polyline は、連結された直線のグループです。リストがとても長くなるため、すべての点は 1 つの属性に収められます:
+polyline は、連結された直線のグループです。リストがとても長くなるため、すべての点は 1 つの属性に収められます:
<polyline points="60 110, 65 120, 70 115, 75 130, 80 125, 85 140, 90 135, 95 150, 100 145"/>
polygon は、点のリストを結ぶ直線の断片を連結して構成される点がポリラインとよく似ています。しかし polygon では、終端で線のパスが自動的に最初の点に戻ることで、閉じた図形を作成します。長方形は多角形の一種であるので、より柔軟性が必要である場合は <rect/> 要素を作成するために polygon を用いることができることに留意してください。
polygon は、点のリストを結ぶ直線の断片を連結して構成される点がポリラインとよく似ています。しかし polygon では、終端で線のパスが自動的に最初の点に戻ることで、閉じた図形を作成します。長方形は多角形の一種であるので、より柔軟性が必要である場合は <rect/> 要素を作成するために polygon を用いることができることに留意してください。
<polygon points="50 160, 55 180, 70 180, 60 190, 65 205, 50 195, 35 205, 40 190, 30 180, 45 180"/>
path は SVG で使用できる図形の中でもっとも一般的なものでしょう。path 要素を用いて長方形 (角を丸めることもできます)、円、楕円、ポリライン、多角形を描画することができます。基本的には他の図形、ベジェ曲線、二次曲線などのいずれかになります。以上の理由からパスについてはこのチュートリアルの次のセクションに独立していますが、 ここではその図形をコントロールするただ一つの属性があることを示します。
+path は SVG で使用できる図形の中でもっとも一般的なものでしょう。path 要素を用いて長方形 (角を丸めることもできます)、円、楕円、ポリライン、多角形を描画することができます。基本的には他の図形、ベジェ曲線、二次曲線などのいずれかになります。以上の理由からパスについてはこのチュートリアルの次のセクションに独立していますが、 ここではその図形をコントロールするただ一つの属性があることを示します。
<path d="M 20 230 Q 40 205, 50 230 T 90230"/>-
{{ PreviousNext("SVG/Tutorial/Positions", "SVG/Tutorial/Paths") }}
Interwiki Languages Links
diff --git a/files/ja/web/svg/tutorial/patterns/index.html b/files/ja/web/svg/tutorial/patterns/index.html index e0b7fcd4fb..a79fe98e90 100644 --- a/files/ja/web/svg/tutorial/patterns/index.html +++ b/files/ja/web/svg/tutorial/patterns/index.html @@ -8,7 +8,7 @@ translation_of: Web/SVG/Tutorial/Patterns ---{{ PreviousNext("SVG/Tutorial/Gradients", "SVG/Tutorial/Texts") }}
-私見では、パターンは SVG で用いる中でわかりにくい塗りつぶし方のひとつです。とはいえとても強力であるので、パターンには説明および少なくとも基礎的な部分は把握するだけの価値があります。グラデーションと同様に、<pattern> 要素は SVG ファイルの <defs> セクションに置かなければなりません。
私見では、パターンは SVG で用いる中でわかりにくい塗りつぶし方のひとつです。とはいえとても強力であるので、パターンには説明および少なくとも基礎的な部分は把握するだけの価値があります。グラデーションと同様に、<pattern> 要素は SVG ファイルの <defs> セクションに置かなければなりません。

末尾のカンマ ("最後のカンマ" と呼ばれることもあります) は、JavaScript のコードに新しい要素や引数、プロパティを追加するときに役立ちます。新しいプロパティを追加するとき、最終行ですでに末尾のカンマを使用していれば、最終行を修正することなく新しい行を追加できます。これによって、バージョン管理の差分がより洗練され、コード編集の煩雑さを軽減できます。
- -JavaScript は、当初から配列リテラルで末尾のカンマを使用できました。そして、ECMAScript 5 でオブジェクトリテラルの、ECMAScript 2017 で関数の引数の末尾のカンマが使用できるようになりました。
- -しかし、JSON では末尾のカンマを使用できません。
- -,- -
JavaScript は配列の末尾のカンマを無視します。
- -var arr = [ - 1, - 2, - 3, -]; - -arr; // [1, 2, 3] -arr.length; // 3- -
1 つ以上の末尾のカンマがある場合、省略 (または穴) が作られます。穴がある配列は希薄な (密集した配列は穴がありません) 配列と呼ばれます。たとえば、{{jsxref("Array.prototype.forEach()")}} や {{jsxref("Array.prototype.map()")}} で配列をイテレートするとき、穴はスキップされます。
- -var arr = [1, 2, 3,,,]; -arr.length; // 5 -- -
ECMAScript 5 から、オブジェクトリテラルの末尾のカンマも使用できるようになりました:
- -var object = {
- foo: "bar",
- baz: "qwerty",
- age: 42,
-};
-
-ECMAScript 2017 では、関数の引数リストで末尾のカンマが使用できるようになりました。
- -次の 2 つの関数定義はともに有効で等しいものです。末尾のカンマは、関数の length プロパティや arguments オブジェクトに影響を与えません。
function f(p) {}
-function f(p,) {}
-
-(p) => {};
-(p,) => {};
-
-
-末尾のカンマは 、クラスやオブジェクトのメソッド定義でも使用できます。
- -class C {
- one(a,) {}
- two(a, b,) {}
-}
-
-var obj = {
- one(a,) {},
- two(a, b,) {},
-};
-
-
-次の 2 つの関数呼び出しはともに有効で等しいものです。
- -f(p); -f(p,); - -Math.max(10, 20); -Math.max(10, 20,); -- -
カンマしか含まない関数の引数定義や関数呼び出しは、{{Jsxref("SyntaxError")}} を投げます。さらに、rest parameters を使用しているときは、末尾のカンマは許可されません。
- -function f(,) {} // SyntaxError: missing formal parameter
-(,) => {}; // SyntaxError: expected expression, got ','
-f(,) // SyntaxError: expected expression, got ','
-
-function f(...p,) {} // SyntaxError: parameter after rest parameter
-(...p,) => {} // SyntaxError: expected closing parenthesis, got ','
-
-
-末尾のカンマは、分割代入の左辺でも使用できます。
- -// array destructuring with trailing comma
-[a, b,] = [1, 2];
-
-// object destructuring with trailing comma
-var o = {
- p: 42,
- q: true,
-};
-var {p, q,} = o;
-
-
-また、rest element で使用すると、{{jsxref("SyntaxError")}} を投げます。
- -var [a, ...b,] = [1, 2, 3]; -// SyntaxError: rest element may not have a trailing comma- -
オブジェクトリテラルの末尾のカンマは、ECMAScript 5 でのみ導入されました。JSON は ES5 以前の JavaScript 構文に基づいているため、末尾のカンマを使用できません。
- -次の行は SyntaxError を投げます。
JSON.parse('[1, 2, 3, 4, ]');
-JSON.parse('{"foo" : 1, }');
-// SyntaxError JSON.parse: unexpected character
-// at line 1 column 14 of the JSON data
-
-
-正しく JSON をパースするには、カンマを省略します。
- -JSON.parse('[1, 2, 3, 4 ]');
-JSON.parse('{"foo" : 1 }');
-
-| 仕様書 | -
|---|
| {{SpecName('ESDraft')}} | -
{{Compat("javascript.grammar.trailing_commas")}}
-substr() メソッドは、文字列の一部を、指定した位置から後方向指定した文字数だけ返します。
str.substr(start[, length])- -
startlength指定された文字列の指定された部分が入った新しい文字列です。
- -substr() は、 str のうち length 文字分を、 start の位置から数えて抽出します。
start が正の数である場合、文字列の先頭から数えた位置になります。この値は str.length が上限になります。start が負の数である場合、文字列の末尾から数えた位置になります。この値は -str.length が下限になります。start の引数が負の数であっても文字列の末尾からの位置にはなりません。length が省略された場合、 substr() は文字列の末尾までの文字を抽出します。length が {{jsxref("undefined")}} である場合、 substr() は文字列の末尾までの文字を抽出します。length が負の数である場合、 0 として扱われます。start および length において、 {{jsxref("NaN")}} は 0 として扱われます。Microsoft の JScript は start の位置として負の数に対応していません。この機能を使用したい場合は、このバグを回避するために、次の互換コードを使用することができます。
- -// only run when the substr() function is broken
-if ('ab'.substr(-1) != 'b') {
- /**
- * Get the substring of a string
- * @param {integer} start where to start the substring
- * @param {integer} length how many characters to return
- * @return {string}
- */
- String.prototype.substr = function(substr) {
- return function(start, length) {
- // call the original method
- return substr.call(this,
- // did we get a negative start, calculate how much it is from the beginning of the string
- // adjust the start parameter for negative value
- start < 0 ? this.length + start : start,
- length)
- }
- }(String.prototype.substr);
-}
-
-
-var aString = 'Mozilla'; - -console.log(aString.substr(0, 1)); // 'M' -console.log(aString.substr(1, 0)); // '' -console.log(aString.substr(-1, 1)); // 'a' -console.log(aString.substr(1, -1)); // '' -console.log(aString.substr(-3)); // 'lla' -console.log(aString.substr(1)); // 'ozilla' -console.log(aString.substr(-20, 2)); // 'Mo' -console.log(aString.substr(20, 2)); // '' -- -
| 仕様書 | -
|---|
| {{SpecName('ESDraft', '#sec-string.prototype.substr', 'String.prototype.substr')}} | -
{{Compat("javascript.builtins.String.substr")}}
- -clear() メソッドは、WeakMap オブジェクトからすべての要素を削除するために使用されていましたが、もはや ECMAScript とその実装に含まれていません。
wm.clear();
-
-clear メソッドを使うvar wm = new WeakMap();
-var obj = {};
-
-wm.set(obj, "foo");
-wm.set(window, "bar");
-
-wm.has(obj); // true
-wm.has(window); // true
-
-wm.clear();
-
-wm.has(obj) // false
-wm.has(window) // false
-
-
-すべての現在の仕様やドラフトでサポートされていません。このメソッドは、リビジョン 28 (October 14, 2014 のバージョン)まで ECMAScript 第 6 版ドラフトでサポートされていました。しかし、最新バージョンのドラフトで削除されました。最終仕様では、サポートされていません。
- -{{Compat("javascript.builtins.WeakMap.clear")}}
- -lastIndex は正規表現インスタンスの読み書き可能なプロパティで、次の一致を開始する位置を指定します。
regExpObj.lastIndex
-
-このプロパティは、正規表現インスタンスがグローバル検索を示すために g フラグを使用した場合、または粘着的検索を示すために y フラグを使用した場合にのみ設定されます。以下の規則が適用されます。
lastIndex が文字列の長さよりも大きければ、 {{jsxref("RegExp.prototype.test()", "test()")}} および {{jsxref("RegExp.prototype.exec()", "exec()")}} は失敗し、lastIndex は 0 にセットされます。lastIndex が文字列の長さ以下で、かつ正規表現が空文字列に一致する場合には、正規表現は lastIndex から始まる入力に一致します。lastIndex が文字列の長さと等しく、かつ、正規表現が空文字列に一致しない場合、正規表現は入力に一致せず、 lastIndex は 0 にリセットされます。lastIndex は直近の一致に続く次の位置に設定されます。例えば、以下の連続した処理を考えてみてください。:
- -var re = /(hi)?/g; -- -
空文字列に一致します。
- -console.log(re.exec('hi'));
-console.log(re.lastIndex);
-
-
-lastIndex が 2 になり["hi", "hi"] が返ります。
console.log(re.exec('hi'));
-console.log(re.lastIndex);
-
-
-ゼロ番目の要素が一致した文字列なので、 ["", undefined] という空配列が返ります。この場合、 lastIndex が 2 であったときに (そして 2 のままである)、 hi の長さが 2 であるので、空文字列になります。
| 仕様書 | -
|---|
| {{SpecName('ESDraft', '#sec-properties-of-regexp-instances', 'RegExp.lastIndex')}} | -
{{Compat("javascript.builtins.RegExp.lastIndex")}}
-オプショナルチェイニング演算子 ?. は、接続されたオブジェクトチェーンの深くに位置するプロパティの値を、チェーン内の各参照が正しいかどうかを明示的に確認せずに読み込むことを可能にします。 ?. 演算子の機能は . チェーン演算子と似ていますが、参照が {{glossary("nullish")}} ({{JSxRef("null")}} または {{JSxRef("undefined")}}) の場合にエラーとなるのではなく、式が短絡され undefined が返されるところが異なります。 関数呼び出しで使用すると、与えられた関数が存在しない場合、 undefined を返します。
これは、参照が失われた可能性のある連結されたプロパティにアクセスする時、結果的に短く単純な式になります。また、必要なプロパティの存在が保証されていない場合にオブジェクトのコンテンツを探索するのにも役立ちます。
- -オプショナルチェイニングは、存在しないルートオブジェクトでは使用できません。if (typeof a == "undefined") のようなチェックを置き換えるものではありません。
obj?.prop -obj?.[expr] -arr?.[index] -func?.(args) -- -
オプショナルチェイニング演算子は、参照や関数が undefined または null である可能性がある場合でも、接続されたオブジェクトの値に簡単にアクセスする手段を提供します。
たとえば、入れ子構造を持つオブジェクト obj を考えましょう。オプショナルチェイニング演算子なしで深い入れ子になったサブプロパティにアクセスするには、次のように、各プロパティ間の参照を確認する必要があります:
let nestedProp = obj.first && obj.first.second;- -
obj.first.second の値にアクセスする前に、 obj.first の値が null または undefined でないことを確認します。これにより、 obj.first をテストせずに直接 obj.first.second にアクセスしたときに起きるエラーを防ぐことができます。
しかし、オプショナルチェイニング演算子 (?.) を使えば、obj.first.second にアクセスしようとする前に obj.first の状態を明示的にテストする必要がなくなります:
let nestedProp = obj.first?.second;- -
?. を . の代わりに用いることで、 JavaScript が obj.first.second にアクセスしようとする前に obj.first が null または undefined でないことを暗黙的に確かめるようになります。obj.first が null または undefined であった場合、式が自動的に短絡され、 undefined が返ります。
これは、一時的な変数が作成されないことを除き、次の式と等価です。
- -let temp = obj.first; -let nestedProp = ((temp === null || temp === undefined) ? undefined : temp.second); -- -
存在しない可能性がある関数の呼び出しを試行するときに、オプショナルチェイニングを使うことができます。これはたとえば、ユーザーのデバイス上で使えなかったり、実装が古かったりするために使えなかったりする可能性がある API を使うときに役立ちます。
- -関数呼び出しでオプショナルチェイニング演算子を用いた場合、メソッドが見つからないときは自動的に undefined が返ります。例外はスローされません。
let result = someInterface.customMethod?.();- -
注意: 上記のようなプロパティの関数がない場合に、?. を使用すると {{JSxRef("TypeError")}} 例外が発生します (someInterface.customMethod is not a function)。
注意: someInterface 自体が null または undefined の場合にも、{{JSxRef("TypeError")}} 例外が発生します (someInterface is null)。someInterface 自体が null または undefined の可能性がある場合は、次の位置にも ?. を使用しなければなりません。someInterface?.customMethod?.()
コールバックを使う場合や、オブジェクトからメソッドを分割代入を利用して取り出す場合に、存在しない値がある可能性があり、その存在を検証するまで関数として呼び出せません。その場合 ?. を利用することで、検証の必要性を回避できます。
// Written as of ES2019
-function doSomething(onContent, onError) {
- try {
- // ... do something with the data
- }
- catch (err) {
- if (onError) { // Testing if onError really exists
- onError(err.message);
- }
- }
-}
-
-
-// Using optional chaining with function calls
-function doSomething(onContent, onError) {
- try {
- // ... do something with the data
- }
- catch (err) {
- onError?.(err.message); // no exception if onError is undefined
- }
-}
-
-
-ブラケット表記法とオプショナルチェイニング演算子を組み合わせることもできます。
- -let nestedProp = obj?.['prop' + 'Name']; -- -
let object = {};
-object?.property = 1; // Uncaught SyntaxError: Invalid left-hand side in assignment
-
-let arrayItem = arr?.[42];- -
次の例では、マップに存在しない bar メンバの name プロパティを取得しようとしています。したがって、結果は undefined になります。
let myMap = new Map();
-myMap.set("foo", {name: "baz", desc: "inga"});
-
-let nameBar = myMap.get("bar")?.name;
-
-式と一緒にオプショナルチェイニング演算子を用いたとき、左側のオペランドが null または undefined である場合にその式は評価されなくなります。
let potentiallyNullObj = null; -let x = 0; -let prop = potentiallyNullObj?.[x++]; - -console.log(x); // 0 as x was not incremented -- -
入れ子になったオブジェクトでは、オプショナルチェイニング演算子を何度でも使えます。
- -let customer = {
- name: "Carl",
- details: {
- age: 82,
- location: "Paradise Falls" // detailed address is unknown
- }
-};
-let customerCity = customer.details?.address?.city;
-
-// … this also works with optional chaining function call
-let duration = vacations.trip?.getTime?.();
-
-
-{{JSxRef("Operators/Nullish_Coalescing_Operator", "Null 合体演算子", '', 1)}}はオプショナルチェイニングの後につけることで、存在しない値があった時、既定値をかわりに使うために利用できます。
- -let customer = {
- name: "Carl",
- details: { age: 82 }
-};
-const customerCity = customer?.city ?? "Unknown city";
-console.log(customerCity); // Unknown city
-
-| 仕様書 | -状態 | -備考 | -
|---|---|---|
| "オプショナルチェイニング" 演算子の提案 | -Stage 4 | -- |
{{Compat("javascript.operators.optional_chaining")}}
-コールバックを使う場合や、オブジェクトからメソッドを分割代入を利用して取り出す場合に、存在しない値がある可能性があり、その存在を検証するまで関数として呼び出せません。その場合 `?.` を利用することで、検証の必要性を回避できます。
+
+```js
+// Written as of ES2019
+function doSomething(onContent, onError) {
+ try {
+ // ... do something with the data
+ }
+ catch (err) {
+ if (onError) { // Testing if onError really exists
+ onError(err.message);
+ }
+ }
+}
+```
+
+```js
+// Using optional chaining with function calls
+function doSomething(onContent, onError) {
+ try {
+ // ... do something with the data
+ }
+ catch (err) {
+ onError?.(err.message); // no exception if onError is undefined
+ }
+}
+```
+
+### オプショナルチェーン演算子と式の組み合わせ
+
+[プロパティアクセサーのブラケット表記法](/ja/docs/Web/JavaScript/Reference/Operators/Property_Accessors#bracket_notation)を使用している式のプロパティにアクセスする際にも、オプショナルチェーン演算子を使用することができます。
+
+```js
+let nestedProp = obj?.['prop' + 'Name'];
+```
+
+### オプショナルチェーン演算子は代入の左辺値では使用できない
+
+```js
+let object = {};
+object?.property = 1; // Uncaught SyntaxError: Invalid left-hand side in assignment
+```
+
+### オプショナルチェーンによる配列要素へのアクセス
+
+```js
+let arrayItem = arr?.[42];
+```
+
+## 例
+
+### 基本的な例
+
+次の例では、マップに存在しない `bar` メンバの `name` プロパティを取得しようとしています。したがって、結果は `undefined` になります。
+
+```js
+let myMap = new Map();
+myMap.set("foo", {name: "baz", desc: "inga"});
+
+let nameBar = myMap.get("bar")?.name;
+```
+
+### 短絡評価
+
+式と一緒にオプショナルチェーン演算子を用いたとき、左側のオペランドが `null` または `undefined` である場合、その式は評価されなくなります。
+
+```js
+let potentiallyNullObj = null;
+let x = 0;
+let prop = potentiallyNullObj?.[x++];
+
+console.log(x); // 0 となる。 x は加算されていない
+```
+
+### オプショナルチェーンをつなげて使う
+
+入れ子になったオブジェクトでは、オプショナルチェーン演算子を何度でも使うことができます。
+
+```js
+let customer = {
+ name: "Carl",
+ details: {
+ age: 82,
+ location: "Paradise Falls" // 詳細な住所は不明
+ }
+};
+let customerCity = customer.details?.address?.city;
+
+// … これはオプショナルチェーンの関数呼び出しでも動作します
+let customerName = customer.name?.getName?.(); // メソッドが存在しないので、 customerName は undefined
+```
+
+### Null 合体演算子と共に使う
+
+{{JSxRef("Operators/Nullish_Coalescing_Operator", "Null 合体演算子", '', 1)}}はオプショナルチェーンの後につけることで、値が存在しなかったときの既定値を指定することができます。
+
+```js
+let customer = {
+ name: "Carl",
+ details: { age: 82 }
+};
+const customerCity = customer?.city ?? "Unknown city";
+console.log(customerCity); // Unknown city
+```
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- {{JSxRef("Operators/Nullish_Coalescing_Operator", "Null 合体演算子", '', 1)}}
--
cgit v1.2.3-54-g00ecf
From e784f81665d6d497f98487403d76cc8020943ee0 Mon Sep 17 00:00:00 2001
From: Masahiro FUJIMOTO 一般的には、複数の非同期タスクがあり、お互いに依存せずに正常に完了する場合や、各プロミスの結果を常に知りたい場合に使用されます。 これと比較して、 {{jsxref("Promise.all()")}} で返されるプロミスは、タスクがお互いに依存している場合や、タスクのいずれかが拒否されたときにすぐに拒否したい場合にはより適切かもしれません。 待ち状態の {{jsxref("Promise")}} で、指定されたプロミスの集合に含まれるすべてのプロミスが、正常に解決されるか拒否されるかのどちらかで完了すると、非同期に解決されます。その際、返されたプロミスのハンドラーには、元のプロミスの集合に含まれるの各プロミスの結果を含む配列が入力として渡されます。 ただし、空の反復可能オブジェクトが引数として渡された場合に限り、 出力されるそれぞれのオブジェクトには、 {{Compat("javascript.builtins.Promise.allSettled")}} BCP47 言語タグの文字列、または、そのような文字列の配列です。ブラウザーの既定のロケールを使用するには、空の配列を渡してください。。 Unicode 拡張に対応しています (例えば " 以下のプロパティの一部またはすべてを持つオブジェクトです。 以下のプロパティは、書式化の出力や、要求された表現で使用する日付や時刻のコンポーネントです。実装は、少なくとも以下のサブセットに対応することが要求されています。 実装は他のサブセットに対応することもでき、要求はすべての利用可能な表現の中から最適なものを見つけるために交渉します。 Firefox 84, Chrome 84, などで追加されました。詳しくは互換性一覧表を参照してください。 日付・時間コンポーネントプロパティの既定値は {{jsxref("undefined")}} ですが、すべてのコンポーネントプロパティが {{jsxref("undefined")}} であった場合、 ロケールを指定しない基本的な使用方法では、 {{Compat("javascript.builtins.Intl.DateTimeFormat.DateTimeFormat")}} ほとんどの場合、 このことから、 注: この StackOverflow のスレッドに詳細や例があります。 {{Compat("javascript.builtins.Intl.DateTimeFormat.format")}} このメソッドは2つの {{jsxref("Date")}} を受け取り、 {{jsxref("DateTimeFormat", "Intl.DateTimeFormat")}} オブジェクトがインスタンス化されたときに提供された {{Compat("javascript.builtins.Intl.DateTimeFormat.formatRange")}} {{JSRef}} このメソッドは2つの {{jsxref("Date")}} を受け取り、期間を書式化する際の各部品を表すロケール特有のトークンを含む {{jsxref("Array")}} オブジェクトを返します。 {{Compat("javascript.builtins.Intl.DateTimeFormat.formatRangeToParts")}} 書式化された日付のパーツを含むオブジェクトの {{jsxref("Array")}} です。 渡される可能性がある type は以下のとおりです。 この機能のポリフィルは、提案リポジトリから利用できます。 しかし、多くのユーザーインターフェイスでは、この文字列の書式をカスタマイズしたいという要望があります。 これで情報は個別に利用可能になり、カスタマイズされた方法で再び書式化して連結することができます。例えば、{{jsxref("Array.prototype.map()")}}、アロー関数、 switch 文、テンプレートリテラル、 {{jsxref("Array.prototype.reduce()")}} などを使用しています。 これにより、 いくつかのケースでは、暦は名前付きの年を使用しています。 例えば、中国やチベットの暦では、60年周期の干支を使用しています。これらの年は、グレゴリオ暦の年と関連付けて識別されます。このような場合、 これにより、ロケールとカレンダーを両方の および {{Compat("javascript.builtins.Intl.DateTimeFormat.formatToParts")}} 基本的に、ロケールを指定せずに使用すると、 この例では、ローカライズされた日付と時刻の形式のバリエーションの一部示しています。アプリケーションのユーザーインターフェイスで使用される言語のフォーマットを取得するには、 日付と時刻の書式は The used calendar and numbering formats can also be set independently via formatjs Intl.DateTimeFormat polyfill この {{jsxref("DateTimeFormat")}} オブジェクトの初期化時に計算されたロケールと照合オプションを反映したプロパティを持つ新しいオブジェクトです。 返されるオブジェクトには以下のプロパティがあります。 {{Compat("javascript.builtins.Intl.DateTimeFormat.resolvedOptions")}} 省略可能です。以下のプロパティを持つことがあるオブジェクトです。 指定したロケールタグのサブセットを表す文字列の配列で、ランタイムの既定のロケールで代替する必要なく日時の書式で対応されているものを含みます。 日時の書式でインドネシア語とドイツ語に対応しており、バリ語に対応していないランタイムを想定すると、 {{Compat("javascript.builtins.Intl.DateTimeFormat.supportedLocalesOf")}} 指定されたプロパティが列挙可能であり、かつオブジェクト自体のプロパティであるかどうかを示す {{jsxref("Boolean")}} 。 すべてのオブジェクトは 以下の例はオブジェクトと配列での 以下の例はユーザー定義プロパティと組み込みプロパティの列挙可能性を実証しています。 {{Compat("javascript.builtins.Object.propertyIsEnumerable")}} 静的な このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 https://github.com/mdn/interactive-examples をクローンしてプルリクエストを送信してください。 {{jsxref("TypeError")}}: この2つの手法の最終結果は同じですが、その過程に重要な違いがあります。 一方、 {{Compat("javascript.builtins.Reflect.construct")}} 次の例では、無名ジェネレーター関数を定義し、 {{Compat("javascript.operators.function_star")}}Promise.allSettled() メソッドは、与えられたすべてのプロミスが満足したか拒否された後に、それぞれのプロミスの結果を記述した配列オブジェクトで解決されるプロミスを返します。構文
-
-Promise.allSettled(iterable);
-
-引数
-
-
-
-
-iterablePromise であるものです。返値
-
-Promise.allSettled() は空の配列として解決済みの Promise オブジェクトを返します。status の文字列が存在します。 status が fulfilled であれば、 value が存在します。 status が rejected であれば、 reason が存在します。 value (または reason) はそれぞれのプロミスがどの値で解決 (または拒否) されたかを反映します。例
-
-Promise.allSettled の使用
-
-Promise.allSettled([
- Promise.resolve(33),
- new Promise(resolve => setTimeout(() => resolve(66), 0)),
- 99,
- Promise.reject(new Error('an error'))
-])
-.then(values => console.log(values));
-
-// [
-// {status: "fulfilled", value: 33},
-// {status: "fulfilled", value: 66},
-// {status: "fulfilled", value: 99},
-// {status: "rejected", reason: Error: an error}
-// ]
-
-
-仕様書
-
-
-
-
-
-
-
-
-
- 仕様書
-
-
-
-{{SpecName('ESDraft', '#sec-promise.allsettled', 'Promise.allSettled')}}
- ブラウザーの互換性
-
-関連情報
-
-
-
diff --git a/files/ja/web/javascript/reference/global_objects/promise/allsettled/index.md b/files/ja/web/javascript/reference/global_objects/promise/allsettled/index.md
new file mode 100644
index 0000000000..e96b5fe08e
--- /dev/null
+++ b/files/ja/web/javascript/reference/global_objects/promise/allsettled/index.md
@@ -0,0 +1,99 @@
+---
+title: Promise.allSettled()
+slug: Web/JavaScript/Reference/Global_Objects/Promise/allSettled
+tags:
+ - JavaScript
+ - メソッド
+ - プロミス
+ - Reference
+ - allSettled
+ - 非同期
+ - Polyfill
+browser-compat: javascript.builtins.Promise.allSettled
+translation_of: Web/JavaScript/Reference/Global_Objects/Promise/allSettled
+---
+{{JSRef}}
+
+**`Promise.allSettled()`** メソッドは、与えられたすべてのプロミスが履行されたか拒否された後に、それぞれのプロミスの結果を記述した配列オブジェクトで解決されるプロミスを返します。
+
+一般的には、複数の非同期タスクがあり、お互いに依存せずに正常に完了する場合や、各プロミスの結果を常に知りたい場合に使用されます。
+
+これに対して、 {{jsxref("Promise.all()")}} で返されるプロミスは、タスクがお互いに依存している場合や、タスクのいずれかが拒否されたときにすぐに拒否したい場合にはより適切かもしれません。
+
+{{EmbedInteractiveExample("pages/js/promise-allsettled.html")}}
+
+## 構文
+
+```js
+Promise.allSettled(iterable);
+```
+
+### 引数
+
+- `iterable`
+ - : {{jsxref("Array")}} などの[反復可能](/ja/docs/Web/JavaScript/Reference/Iteration_protocols)オブジェクトで、それぞれの要素が `Promise` であるものです。
+
+### 返値
+
+**待ち状態**の {{jsxref("Promise")}} で、指定されたプロミスの集合に含まれるすべてのプロミスが、正常に履行されるか拒否されるかのどちらかで完了すると、**非同期に**解決されます。その際、返されたプロミスのハンドラーには、元のプロミスの集合に含まれるの各プロミスの結果を含む配列が入力として渡されます。
+
+ただし、空の反復可能オブジェクトが引数として渡された**場合に限り**、 `Promise.allSettled()` は空の配列として**解決済みの** `Promise` オブジェクトを返します。
+
+出力されるそれぞれのオブジェクトには、 `status` の文字列が存在します。 status が `fulfilled` (履行) であれば、 `value` が存在します。 status が `rejected` (拒否) であれば、 `reason` が存在します。 value (または reason) はそれぞれのプロミスがどの値で履行 (または拒否) されたかを反映します。
+
+## 例
+
+### Promise.allSettled の使用
+
+#### {{JSxRef("Promise.then", "Promise.prototype.then()")}}
+```js
+Promise.allSettled([
+ Promise.resolve(33),
+ new Promise(resolve => setTimeout(() => resolve(66), 0)),
+ 99,
+ Promise.reject(new Error('an error'))
+])
+.then(values => console.log(values));
+
+// [
+// {status: "fulfilled", value: 33},
+// {status: "fulfilled", value: 66},
+// {status: "fulfilled", value: 99},
+// {status: "rejected", reason: Error: an error}
+// ]
+```
+
+#### {{jsxref("Operators/await", "await")}}
+```js
+const values = await Promise.allSettled([
+ Promise.resolve(33),
+ new Promise(resolve => setTimeout(() => resolve(66), 0)),
+ 99,
+ Promise.reject(new Error('an error'))
+])
+console.log(values)
+
+// [
+// {status: "fulfilled", value: 33},
+// {status: "fulfilled", value: 66},
+// {status: "fulfilled", value: 99},
+// {status: "rejected", reason: Error: an error}
+// ]
+```
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- `Promise.allSettled` のポリフィルが [`core-js`](https://github.com/zloirock/core-js#ecmascript-promise) で利用できます
+- [Promises](/ja/docs/Archive/Add-ons/Techniques/Promises)
+- [プロミスの使用](/ja/docs/Web/JavaScript/Guide/Using_promises)
+- [プロミスを使った行儀のよい非同期のプログラミング](/ja/docs/Learn/JavaScript/Asynchronous/Promises)
+- {{jsxref("Promise")}}
+- {{jsxref("Promise.all()")}}
--
cgit v1.2.3-54-g00ecf
From 0c0907b0e5c8f261e03b4a6f3de1fb73c4689de7 Mon Sep 17 00:00:00 2001
From: Masahiro FUJIMOTO Intl.DateTimeFormat() コンストラクターは、言語に応じた日付と時刻の書式化を可能にするオブジェクトのためのものです。構文
-
-new Intl.DateTimeFormat([locales[, options]])
-
-引数
-
-
-
-
-locales {{optional_inline}}en-US-u-ca-buddhist" など)。 locales 引数の一般的な形式と解釈は、 {{jsxref("Global_Objects/Intl", "Intl", "#Locale_identification_and_negotiation", 1)}} のページをご覧ください。次の Unicode 拡張キーが利用できます。
-
- nuarab", "arabext", "bali", "beng", "deva", "fullwide", "gujr", "guru", "hanidec", "khmr", "knda", "laoo", "latn", "limb", "mlym", "mong", "mymr", "orya", "tamldec", "telu", "thai", "tibt"cabuddhist", "chinese", "coptic", "ethiopia", "ethiopic", "gregory", "hebrew", "indian", "islamic", "iso8601", "japanese", "persian", "roc"hch11", "h12", "h23", "h24".options {{optional_inline}}
-
-
- dateStyleformat() が呼び出された際に使用される日付の書式化スタイルです。利用可能な値は以下のとおりです。
-
-
-
- full"long"medium"short"dateStyle は timeStyle と一緒に使用することができますが、他のオプションと一緒に使用することができません (例えば weekday, hour, month, など)。timeStyleformat() が呼び出された際に使用される時刻の書式化スタイルです。利用可能な値は以下のとおりです。
-
-
- full"long"medium"short"timeStyle は dateStyle と一緒に使用することができますが、他のオプションと一緒に使用することができません (例えば weekday, hour, month, など)。calendarbuddhist", "chinese", " coptic", "ethiopia", "ethiopic", "gregory", " hebrew", "indian", "islamic", "iso8601", " japanese", "persian", "roc" です。dayPeriodnarrow", "short", " long" です。numberingSystemarab", "arabext", " bali", "beng", "deva", "fullwide", " gujr", "guru", "hanidec", "khmr", " knda", "laoo", "latn", "limb", "mlym", " mong", "mymr", "orya", "tamldec", " telu", "thai", "tibt" です。localeMatcherlookup" と "best fit" です。既定値は "best fit" です。このオプションについての詳細は、 {{jsxref("Global_Objects/Intl", "Intl のページ", "#Locale_negotiation", 1)}}をご覧ください。timeZoneUTC" です。既定値は、実行時の既定のタイムゾーンです。実装は、 IANA タイムゾーンデータベースのタイムゾーン名、例えば "Asia/Shanghai", "Asia/Kolkata", "America/New_York" なども認識できる場合があります。hour12true と false です。既定ではロケールに依存します。このオプションは hc 言語タグや hourCycle オプションと一緒に使用された場合、これらを上書きします。hourCycleh11", "h12", "h23", "h24" です。このオプションは hc 言語タグと一緒に使用された場合はそれを上書きし、両方のオプションが指定されていた場合は hour12 オプションが優先されます。formatMatcherbasic" と "best fit" です。既定値は "best fit" です。このプロパティの使用方法については、以下の項を参照してください。
-
-
- weekday, year, month, day, hour, minute, secondweekday, year, month, dayyear, month, dayyear, monthmonth, dayhour, minute, secondhour, minuteformatMatcher プロパティによるこの交渉や選択には2つのアルゴリズムが利用できます。完全に定義された "basic" アルゴリズムと、実装に依存した"best fit" アルゴリズムです。
-
-
- weekday
-
- long" (例 Thursday)short" (例 Thu)narrow" (例 T)。ロケールによっては、 narrow 形式が同じ曜日が2つある場合もあります (例 Tuesday の narrow 形式も T です)。era
-
- long" (例 Anno Domini, 紀元)short" (例 AD)narrow" (例 A)year
-
- numeric" (例 2012)2-digit" (例 12)month
-
- numeric" (例 2)2-digit" (例 02)long" (例 March)short" (例 Mar)narrow" (例 M)。ロケールによっては、 narrow 形式が同じ月が2つある場合もあります (例 May の narrow 形式も M です)。day
-
- numeric" (例 1)2-digit" (例 01)hournumeric", "2-digit" です。minutenumeric", "2-digit" です。secondnumeric", "2-digit" です。fractionalSecondDigits
-
- 0 (小数点以下は切り捨て)1 (小数点以下は1桁で表される。例えば、 736 は 7 と書式化される。)2 (小数点以下は2桁で表される。例えば、 736 は 73 と書式化される。)3 (小数点以下は2桁で表される。例えば、 736 は 736 と書式化される。)timeZoneName
-
- long" (例 British Summer Time)short" (例 GMT+1)year, month, day は "numeric" であると仮定されます。例
-
-DateTimeFormat の使用
-
-DateTimeFormat は既定のロケールとオプションを使用します。var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));
-
-// toLocaleString without arguments depends on the implementation,
-// the default locale, and the default time zone
-console.log(new Intl.DateTimeFormat().format(date));
-// → "12/19/2012" if run with en-US locale (language) and time zone America/Los_Angeles (UTC-0800)
-
-timeStyle と dateStyle の使用
-
-let o = new Intl.DateTimeFormat("en" , {
- timeStyle: "short"
-});
-console.log(o.format(Date.now())); // "13:31 AM"
-
-let o = new Intl.DateTimeFormat("en" , {
- dateStyle: "short"
-});
-console.log(o.format(Date.now())); // "07/07/20"
-
-let o = new Intl.DateTimeFormat("en" , {
- timeStyle: "medium",
- dateStyle: "short"
-});
-console.log(o.format(Date.now())); // "07/07/20, 13:31:55 AM"
-
-仕様書
-
-
-
-
-
-
-
-
-
- 仕様書
-
-
-
-{{SpecName('ES Int Draft', '#sec-intl-datetimeformat-constructor', 'Intl.DateTimeFormat')}}
- ブラウザーの互換性
-
-関連情報
-
-
-
diff --git a/files/ja/web/javascript/reference/global_objects/intl/datetimeformat/datetimeformat/index.md b/files/ja/web/javascript/reference/global_objects/intl/datetimeformat/datetimeformat/index.md
new file mode 100644
index 0000000000..9dd69a4d94
--- /dev/null
+++ b/files/ja/web/javascript/reference/global_objects/intl/datetimeformat/datetimeformat/index.md
@@ -0,0 +1,261 @@
+---
+title: Intl.DateTimeFormat() コンストラクター
+slug: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat
+tags:
+ - Constructor
+ - DateTimeFormat
+ - Internationalization
+ - Intl
+ - JavaScript
+ - Localization
+ - Reference
+browser-compat: javascript.builtins.Intl.DateTimeFormat.DateTimeFormat
+translation_of: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat
+---
+{{JSRef}}
+
+**`Intl.DateTimeFormat()`** コンストラクターは、言語に応じた日付と時刻の書式化を可能にする
+{{jsxref("Intl/DateTimeFormat", "Intl.DateTimeFormat")}} オブジェクトを生成します。
+
+{{EmbedInteractiveExample("pages/js/intl-datetimeformat.html", "taller")}}
+
+
+## 構文
+
+```js
+new Intl.DateTimeFormat()
+new Intl.DateTimeFormat(locales)
+new Intl.DateTimeFormat(locales, options)
+```
+
+### 引数
+
+- `locales` {{optional_inline}}
+ - : BCP 47 言語タグの文字列、または、そのような文字列の配列です。ブラウザーの既定のロケールを使用するには、空の配列を渡してください。。 Unicode 拡張に対応しています (例えば "`en-US-u-ca-buddhist`" など)。 `locales` 引数の一般的な形式と解釈は、 {{jsxref("Global_Objects/Intl", "Intl", "#Locale_identification_and_negotiation", 1)}} のページをご覧ください。次の Unicode 拡張キーが利用できます。
+
+ - `nu`
+ - : 番号方式。使用できる値は "`arab`", "`arabext`", "`bali`", "`beng`", "`deva`", "`fullwide`", "`gujr`", "`guru`", "`hanidec`", "`khmr`", "`knda`", "`laoo`", "`latn`", "`limb`", "`mlym`", "`mong`", "`mymr`", "`orya`", "`tamldec`", "`telu`", "`thai`", "`tibt`" です。
+ - `ca`
+ - : カレンダー。使用できる値は "`buddhist`", "`chinese`", "`coptic`", "`ethiopia`", "`ethiopic`", "`gregory`", "`hebrew`", "`indian`", "`islamic`", "`iso8601`", "`japanese`", "`persian`", "`roc`" です。
+ - `hc`
+ - : 時制。使用できる値は "`h11`", "`h12`", "`h23`", "`h24`" です。
+
+- `options` {{optional_inline}}
+
+ - : 以下のプロパティの一部またはすべてを持つオブジェクトです。
+
+ - `dateStyle`
+
+ - : `format()` が呼び出された際に使用される日付の書式化スタイルです。利用可能な値は以下のとおりです。
+ - "`full`"
+ - "`long`"
+ - "`medium`"
+ - "`short`"
+
+ > **Note:** `dateStyle` は `timeStyle` と一緒に使用することができますが、他のオプション (`weekday`, `hour`, `month`, など) と一緒に使用することはできません。
+
+ - `timeStyle`
+ - : `format()` が呼び出された際に使用される時刻の書式化スタイルです。利用可能な値は以下のとおりです。
+
+ - "`full`"
+ - "`long`"
+ - "`medium`"
+ - "`short`"
+
+ > **Note:** `timeStyle` は `dateStyle` と一緒に使用することができますが、他のオプション (`weekday`, `hour`, `month`, など) と一緒に使用することはできません。
+ - `calendar`
+ - : 暦です。有効な値は、 "`buddhist`", "`chinese`", " `coptic`", "`ethiopia`", "`ethiopic`", "`gregory`", " `hebrew`", "`indian`", "`islamic`", "`iso8601`", " `japanese`", "`persian`", "`roc`" です。
+ - `dayPeriod`
+
+ - : 日単位の期間の表現の仕方です。有効な値は、 "`narrow`", "`short`", " `long`" です。
+
+ > **Note:**
+ >
+ > - このオプションは12時間制を使用したときのみ効果があります。
+ > - 多くのロケールでは幅の指定を無視して同じ文字列を使用します。
+
+ - `numberingSystem`
+ - : 命数法です。有効な値は、 "`arab`", "`arabext`", " `bali`", "`beng`", "`deva`", "`fullwide`", " `gujr`", "`guru`", "`hanidec`", "`khmr`", " `knda`", "`laoo`", "`latn`", "`limb`", "`mlym`", " `mong`", "`mymr`", "`orya`", "`tamldec`", " `telu`", "`thai`", "`tibt`" です。
+ - `localeMatcher`
+ - : 使用するロケール一致アルゴリズム。利用可能な値は "`lookup`" と "`best fit`" です。既定値は "`best fit`" です。このオプションについての詳細は、 {{jsxref("Global_Objects/Intl", "Intl", "#Locale_negotiation", 1)}} のページをご覧ください。
+ - `timeZone`
+ - : 使用するタイムゾーン。実装が認識しなければならない唯一の値は "`UTC`" です。既定値は、実行時の既定のタイムゾーンです。実装は、 [IANA タイムゾーンデータベース](https://www.iana.org/time-zones)のタイムゾーン名、例えば "`Asia/Shanghai`", "`Asia/Kolkata`", "`America/New_York`" なども認識できる場合があります。
+ - `hour12`
+ - : (24 時制に対して) 12 時制を使用するかどうか。可能な値は `true` と `false` です。既定ではロケールに依存します。このオプションは `hc` 言語タグや `hourCycle` オプションと一緒に使用された場合、これらを上書きします。
+ - `hourCycle`
+ - : 使用する時の周期です。利用可能な値は "`h11`", "`h12`", "`h23`", "`h24`" です。このオプションは `hc` 言語タグと一緒に使用された場合はそれを上書きし、両方のオプションが指定されていた場合は `hour12` オプションが優先されます。
+ - `formatMatcher`
+ - : 使用する書式一致アルゴリズム。可能な値は "`basic`" と "`best fit`" です。既定値は "`best fit`" です。このプロパティの使用方法については、以下の項を参照してください。
+
+ 以下のプロパティは、書式化の出力や、要求された表現で使用する日付や時刻のコンポーネントです。実装は、少なくとも以下のサブセットに対応することが要求されています。
+
+ - `weekday`, `year`, `month`, `day`, `hour`, `minute`, `second`
+ - `weekday`, `year`, `month`, `day`
+ - `year`, `month`, `day`
+ - `year`, `month`
+ - `month`, `day`
+ - `hour`, `minute`, `second`
+ - `hour`, `minute`
+
+ 実装は他のサブセットに対応することもでき、要求はすべての利用可能な表現の中から最適なものを見つけるために交渉します。 `formatMatcher` プロパティによるこの交渉や選択には2つのアルゴリズムが利用できます。[完全に定義された "`basic`" アルゴリズム](https://www.ecma-international.org/ecma-402/1.0/#BasicFormatMatcher)と、実装に依存した "`best fit`" アルゴリズムです。
+
+ - `weekday`
+
+ - : 曜日の表現です。利用可能な値は以下の通りです。
+ - "`long`" (例 `Thursday`)
+ - "`short`" (例 `Thu`)
+ - "`narrow`" (例 `T`)。ロケールによっては、 narrow 形式が同じ曜日が2つある場合もあります (例 `Tuesday` の narrow 形式も `T` です)。
+
+ - `era`
+
+ - : 時代の表現です。利用可能な値は以下の通りです。
+
+ - "`long`" (例 `Anno Domini`, 紀元)
+ - "`short`" (例 `AD`)
+ - "`narrow`" (例 `A`)
+
+ - `year`
+
+ - : 年の表現です。利用可能な値は以下の通りです。
+
+ - "`numeric`" (例 `2012`)
+ - "`2-digit`" (例 `12`)
+
+ - `month`
+
+ - : 月の表現です。利用可能な値は以下の通りです。
+ - "`numeric`" (例 `2`)
+ - "`2-digit`" (例 `02`)
+ - "`long`" (例 `March`)
+ - "`short`" (例 `Mar`)
+ - "`narrow`" (例 `M`)。ロケールによっては、 narrow 形式が同じ月が2つある場合もあります (例 `May` の narrow 形式も `M` です)。
+
+ - `day`
+
+ - : 日の表現です。利用可能な値は以下の通りです。
+
+ - "`numeric`" (例 `1`)
+ - "`2-digit`" (例 `01`)
+
+ - `hour`
+ - : 時の表現です。利用可能な値は "`numeric`", "`2-digit`" です。
+ - `minute`
+ - : 分の表現です。利用可能な値は "`numeric`", "`2-digit`" です。
+ - `second`
+ - : 秒の表現です。利用可能な値は "`numeric`", "`2-digit`" です。
+ - `fractionalSecondDigits`
+ - : 秒の小数点以下を表すために使用される数字の桁数 (その先の桁は切り捨てられます)。利用可能な値は次の通りです。
+
+ - `0` (小数点以下は切り捨て)
+ - `1` (小数点以下は1桁で表される。例えば、 736 は `7` と書式化される。)
+ - `2` (小数点以下は2桁で表される。例えば、 736 は `73` と書式化される。)
+ - `3` (小数点以下は2桁で表される。例えば、 736 は `736` と書式化される。)
+
+ - `timeZoneName`
+
+ - : タイムゾーン名の表現です。利用可能な値は以下の通りです。
+
+ - "`long`" ローカライズされた長い形式 (例 `Pacific Standard Time`, `Nordamerikanische Westküsten-Normalzeit`)
+ - "`short`" ローカライズされた短い形式 (例 `PST`, `GMT-8`)
+ - "`shortOffset`" ローカライズされた短い GMT 形式 (例 `GMT-8`)
+ - "`longOffset`" ローカライズされた長い GMT 形式 (例 `GMT-0800`)
+ - "`shortGeneric`" 一般的な場所を指定しない短い形式 (例 `PT`, `Los Angeles Zeit`).
+ - "`longGeneric`" 一般的な場所を指定しない長い形式 (例 `Pacific Time`, `Nordamerikanische Westküstenzeit`)
+
+ > **Note:** タイムゾーンの表示は、必要な文字列が利用できない場合、別の形式にフォールバックすることがあります。例えば、場所を指定しない形式では、 "Pacific Time" のように特定の国や都市の場所を指定せずにタイムゾーンを表示する必要がありますが、 "Los Angeles Time" のようなタイムゾーンにフォールバックする場合があります。
+
+ それぞれの日付や時刻の部分のプロパティの既定値は {{jsxref("undefined")}} ですが、すべての部分のプロパティが {{jsxref("undefined")}} であった場合、 `year`, `month`, `day` は "`numeric`" であると想定されます。
+
+## 例
+
+### DateTimeFormat の使用
+
+ロケールを指定しない基本的な使用方法では、 `DateTimeFormat` は既定のロケールとオプションを使用します。
+
+```js
+let date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));
+
+// toLocaleString without arguments depends on the implementation,
+// the default locale, and the default time zone
+console.log(new Intl.DateTimeFormat().format(date));
+// → "12/19/2012" if run with en-US locale (language) and time zone America/Los_Angeles (UTC-0800)
+```
+
+### timeStyle と dateStyle の使用
+
+```js
+let o = new Intl.DateTimeFormat("en" , {
+ timeStyle: "short"
+});
+console.log(o.format(Date.now())); // "13:31 AM"
+
+let o = new Intl.DateTimeFormat("en" , {
+ dateStyle: "short"
+});
+console.log(o.format(Date.now())); // "07/07/20"
+
+let o = new Intl.DateTimeFormat("en" , {
+ timeStyle: "medium",
+ dateStyle: "short"
+});
+console.log(o.format(Date.now())); // "07/07/20, 13:31:55 AM"
+```
+
+### dayPeriod の使用
+
+`dayPeriod` オプションを使用して、1日の時間帯 (「朝」、「夜」、「正午」など) を表す文字列を出力します。なお、これは 12 時間制の書式でのみ有効であり、 (`hourCycle: 'h12'`)、多くのロケールでは `dayPeriod` の値に関係なく同じ文字列が出力されます。
+
+```js
+let date = Date.UTC(2012, 11, 17, 4, 0, 42);
+
+console.log(new Intl.DateTimeFormat('en-GB', { hour: 'numeric', hourCycle: 'h12',
+dayPeriod: 'short', timeZone: 'UTC' }).format(date));
+// > 4 at night" (same formatting in en-GB for all dayPeriod values)
+
+console.log(new Intl.DateTimeFormat('fr', { hour: 'numeric', hourCycle: 'h12',
+ dayPeriod: 'narrow', timeZone: 'UTC' }).format(date));
+// > "4 mat." (same output in French for both narrow/short dayPeriod)
+
+console.log(new Intl.DateTimeFormat('fr', { hour: 'numeric', hourCycle: 'h12',
+ dayPeriod: 'long', timeZone: 'UTC' }).format(date));
+// > "4 du matin"
+```
+
+### timeZoneName の使用
+
+`timeZoneName` を使用して、タイムゾーンの文字列 ("GMT", "Pacific Time", など) を出力します。
+
+```js
+var date = Date.UTC(2021, 11, 17, 3, 0, 42);
+const timezoneNames = ['short', 'long', 'shortOffset', 'longOffset', 'shortGeneric', 'longGeneric']
+
+for (const zoneName of timezoneNames) {
+ // Do something with currentValue
+ var formatter = new Intl.DateTimeFormat('en-US', {
+ timeZone: 'America/Los_Angeles',
+ timeZoneName: zoneName,
+ });
+ console.log(zoneName + ": " + formatter.format(date) );
+}
+
+// expected output:
+// > "short: 12/16/2021, PST"
+// > "long: 12/16/2021, Pacific Standard Time"
+// > "shortOffset: 12/16/2021, GMT-8"
+// > "longOffset: 12/16/2021, GMT-08:00"
+// > "shortGeneric: 12/16/2021, PT"
+// > "longGeneric: 12/16/2021, Pacific Time"
+```
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- {{jsxref("Intl.DateTimeFormat")}}
+- {{jsxref("Global_Objects/Intl", "Intl")}}
diff --git a/files/ja/web/javascript/reference/global_objects/intl/datetimeformat/format/index.html b/files/ja/web/javascript/reference/global_objects/intl/datetimeformat/format/index.html
deleted file mode 100644
index a7606b00f0..0000000000
--- a/files/ja/web/javascript/reference/global_objects/intl/datetimeformat/format/index.html
+++ /dev/null
@@ -1,111 +0,0 @@
----
-title: Intl.DateTimeFormat.prototype.format()
-slug: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/format
-tags:
- - DateTimeFormat
- - Internationalization
- - Intl
- - JavaScript
- - Method
- - Prototype
-translation_of: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/format
----
-IntlIntl.NumberFormat.prototype.format() メソッドは、この {{jsxref("DateTimeFormat", "Intl.DateTimeFormat")}} オブジェクトのロケールと整形オプションに従って日付や時刻を整形します。構文
-
-dateTimeFormat.format(date)
-
-引数
-
-
-
-
-date解説
-
-format ゲッター関数は、この {{jsxref("DateTimeFormat", "Intl.DateTimeFormat")}} オブジェクトのロケールと整形オプションに従って日付や時刻を整形し、文字列に格納します。例
-
-format の使用
-
-format ゲッター関数を使用して単一の日付値を整形します。こちらはセルビアの例です。var options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };
-var dateTimeFormat = new Intl.DateTimeFormat('sr-RS', options);
-console.log(dateTimeFormat.format(new Date()));
-// → "недеља, 7. април 2013."
-
-
-format と map の使用
-
-format ゲッター関数を使用して、配列内のすべての日付を整形することができます。なお、この関数は供給元である {{jsxref("DateTimeFormat", "Intl.DateTimeFormat")}} に結び付けられているので、直接 {{jsxref("Array.prototype.map()")}} に渡すことができます。var a = [new Date(2012, 08), new Date(2012, 11), new Date(2012, 03)];
-var options = { year: 'numeric', month: 'long' };
-var dateTimeFormat = new Intl.DateTimeFormat('pt-BR', options);
-var formatted = a.map(dateTimeFormat.format);
-console.log(formatted.join('; '));
-// → "setembro de 2012; dezembro de 2012; abril de 2012"
-
-
-書式化された日付値を固定値と比較することは避ける
-
-format() が返す書式は一貫しています。しかし、これは将来的に変更される可能性があり、すべての言語で保証されているわけではありません — 出力のバリエーションは設計上のものであり、仕様上は許容されています。最も注目すべきは、 IE や Edge ブラウザは日付の周りに双方向の制御文字を挿入するため、他のテキストと連結したときに出力テキストが適切に流れることです。format() の結果と固定値を比較することができると期待してはいけません。let d = new Date("2019-01-01T00:00:00.000000Z");
-let formattedDate = Intl.DateTimeFormat(undefined, {
- year: 'numeric',
- month: 'numeric',
- day: 'numeric',
- hour: 'numeric',
- minute: 'numeric',
- second: 'numeric'
-}).format(d);
-
-"1.1.2019, 01:00:00" === formattedDate;
-// true in Firefox and others
-// false in IE and Edge
-
-
-仕様書
-
-
-
-
-
-
-
-
-
- 仕様書
-
-
-
-{{SpecName('ES Int Draft', '#sec-intl.datetimeformat.prototype.format', 'Intl.DateTimeFormat.format')}}
- ブラウザーの互換性
-
-関連情報
-
-
-
diff --git a/files/ja/web/javascript/reference/global_objects/intl/datetimeformat/format/index.md b/files/ja/web/javascript/reference/global_objects/intl/datetimeformat/format/index.md
new file mode 100644
index 0000000000..2cd8c9fae8
--- /dev/null
+++ b/files/ja/web/javascript/reference/global_objects/intl/datetimeformat/format/index.md
@@ -0,0 +1,101 @@
+---
+title: Intl.DateTimeFormat.prototype.format()
+slug: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/format
+tags:
+ - DateTimeFormat
+ - Internationalization
+ - Intl
+ - JavaScript
+ - Localization
+ - Method
+ - Prototype
+ - Reference
+browser-compat: javascript.builtins.Intl.DateTimeFormat.format
+translation_of: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/format
+---
+{{JSRef}}
+
+The **`Intl.DateTimeFormat.prototype.format()`** メソッドは、この {{jsxref("Intl.DateTimeFormat")}} オブジェクトのロケールと整形オプションに従って日付や時刻を整形します。
+
+{{EmbedInteractiveExample("pages/js/intl-datetimeformat-prototype-format.html", "taller")}}
+
+
+## 構文
+
+```js
+format(date)
+```
+
+### 引数
+
+- `date`
+ - : 整形する日付です。
+
+## 解説
+
+`format` ゲッター関数は、この {{jsxref("Intl/DateTimeFormat", "Intl.DateTimeFormat")}} オブジェクトのロケールと整形オプションに従って日付や時刻を整形し、文字列に格納します。
+
+## 例
+
+### format の使用
+
+`format` ゲッター関数を使用して単一の日付値を整形します。こちらはセルビアの例です。
+
+```js
+var options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };
+var dateTimeFormat = new Intl.DateTimeFormat('sr-RS', options);
+console.log(dateTimeFormat.format(new Date()));
+// → "недеља, 7. април 2013."
+```
+
+### format と map の使用
+
+`format` ゲッター関数を使用して、配列内のすべての日付を整形することができます。なお、この関数は供給元である {{jsxref("Intl/DateTimeFormat", "Intl.DateTimeFormat")}} に結び付けられているので、直接 {{jsxref("Array.prototype.map()")}} に渡すことができます。
+
+```js
+var a = [new Date(2012, 08), new Date(2012, 11), new Date(2012, 03)];
+var options = { year: 'numeric', month: 'long' };
+var dateTimeFormat = new Intl.DateTimeFormat('pt-BR', options);
+var formatted = a.map(dateTimeFormat.format);
+console.log(formatted.join('; '));
+// → "setembro de 2012; dezembro de 2012; abril de 2012"
+```
+
+### 書式化された日付値を固定値と比較することは避ける
+
+ほとんどの場合、 `format()` が返す書式は一貫しています。しかし、これは将来的に変更される可能性があり、すべての言語で保証されているわけではありません — 出力のバリエーションは設計上のものであり、仕様上は許容されています。最も注目すべきは、 IE や Edge ブラウザは日付の周りに双方向の制御文字を挿入するため、他のテキストと連結したときに出力テキストが適切に流れることです。
+
+このことから、 `format()` の結果と固定値を比較することができると期待してはいけません。
+
+```js example-bad
+let d = new Date("2019-01-01T00:00:00.000000Z");
+let formattedDate = Intl.DateTimeFormat(undefined, {
+ year: 'numeric',
+ month: 'numeric',
+ day: 'numeric',
+ hour: 'numeric',
+ minute: 'numeric',
+ second: 'numeric'
+}).format(d);
+
+"1.1.2019, 01:00:00" === formattedDate;
+// true in Firefox and others
+// false in IE and Edge
+```
+
+> **Note:** この [StackOverflow のスレッド](https://stackoverflow.com/questions/25574963/ies-tolocalestring-has-strange-characters-in-results)に詳細や例があります。
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- {{jsxref("Intl.DateTimeFormat")}}
+- {{jsxref("Date.prototype.toLocaleString()")}}
+- {{jsxref("Date.prototype.toLocaleDateString()")}}
+- {{jsxref("Date.prototype.toLocaleTimeString()")}}
diff --git a/files/ja/web/javascript/reference/global_objects/intl/datetimeformat/formatrange/index.html b/files/ja/web/javascript/reference/global_objects/intl/datetimeformat/formatrange/index.html
deleted file mode 100644
index 1722354d9e..0000000000
--- a/files/ja/web/javascript/reference/global_objects/intl/datetimeformat/formatrange/index.html
+++ /dev/null
@@ -1,88 +0,0 @@
----
-title: Intl.DateTimeFormat.prototype.formatRange()
-slug: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/formatRange
-tags:
- - JavaScript
- - Method
- - Reference
- - メソッド
-translation_of: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/formatRange
----
-Intl.DateTimeFormat.prototype.formatRange() は、日付の範囲をもっとも簡明な方法で、 {{jsxref("DateTimeFormat", "Intl.DateTimeFormat")}} オブジェクトがインスタンス化されたときに提供された locale と options に基づいて書式化します。構文
-
-
-
-Intl.DateTimeFormat.prototype.formatRange(startDate, endDate)例
-
-基本的な formatRange の使用
-
-locale と options に基づいて日付の範囲を書式化します。let date1 = new Date(Date.UTC(2007, 0, 10, 10, 0, 0));
-let date2 = new Date(Date.UTC(2007, 0, 10, 11, 0, 0));
-let date3 = new Date(Date.UTC(2007, 0, 20, 10, 0, 0));
-// > 'Wed, 10 Jan 2007 10:00:00 GMT'
-// > 'Wed, 10 Jan 2007 11:00:00 GMT'
-// > 'Sat, 20 Jan 2007 10:00:00 GMT'
-
-let fmt1 = new Intl.DateTimeFormat("en", {
- year: '2-digit',
- month: 'numeric',
- day: 'numeric',
- hour: 'numeric',
- minute: 'numeric'
-});
-console.log(fmt1.format(date1));
-console.log(fmt1.formatRange(date1, date2));
-console.log(fmt1.formatRange(date1, date3));
-// > '1/10/07, 10:00 AM'
-// > '1/10/07, 10:00 – 11:00 AM'
-// > '1/10/07, 10:00 AM – 1/20/07, 10:00 AM'
-
-let fmt2 = new Intl.DateTimeFormat("en", {
- year: 'numeric',
- month: 'short',
- day: 'numeric'
-});
-console.log(fmt2.format(date1));
-console.log(fmt2.formatRange(date1, date2));
-console.log(fmt2.formatRange(date1, date3));
-// > 'Jan 10, 2007'
-// > 'Jan 10, 2007'
-// > 'Jan 10 – 20, 2007'
-
-
-仕様書
-
-
-
-
-
-
-
-
-
- 仕様書
-
-
-
-{{SpecName('Intl.DateTimeFormat.formatRange', '#sec-intl.datetimeformat.prototype.formatRange', 'formatRange()')}}
- ブラウザーの互換性
-
-関連情報
-
-
-
diff --git a/files/ja/web/javascript/reference/global_objects/intl/datetimeformat/formatrange/index.md b/files/ja/web/javascript/reference/global_objects/intl/datetimeformat/formatrange/index.md
new file mode 100644
index 0000000000..0c14478615
--- /dev/null
+++ b/files/ja/web/javascript/reference/global_objects/intl/datetimeformat/formatrange/index.md
@@ -0,0 +1,81 @@
+---
+title: Intl.DateTimeFormat.prototype.formatRange()
+slug: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/formatRange
+tags:
+ - DateTimeFormat
+ - Internationalization
+ - Intl
+ - JavaScript
+ - Localization
+ - Method
+ - Prototype
+ - Reference
+browser-compat: javascript.builtins.Intl.DateTimeFormat.formatRange
+translation_of: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/formatRange
+---
+{{JSRef}}
+
+**`Intl.DateTimeFormat.prototype.formatRange()`** は、 {{jsxref("Intl.DateTimeFormat")}} オブジェクトがインスタンス化されたときに提供された **`locale`** と **`options`** に基づいて、もっとも簡明な方法で日付の範囲を書式化します。
+
+{{EmbedInteractiveExample("pages/js/intl-datetimeformat-prototype-formatrange.html",
+ "taller")}}
+
+
+## 構文
+
+```js
+formatRange(startDate, endDate)
+```
+
+## 例
+
+### 基本的な formatRange の使用
+
+このメソッドは 2 つの {{jsxref("Date")}} を受け取り、 {{jsxref("Intl/DateTimeFormat", "Intl.DateTimeFormat")}} オブジェクトがインスタンス化されたときに提供された `locale` と `options` に基づいて日付の範囲を書式化します。
+
+```js
+let date1 = new Date(Date.UTC(2007, 0, 10, 10, 0, 0));
+let date2 = new Date(Date.UTC(2007, 0, 10, 11, 0, 0));
+let date3 = new Date(Date.UTC(2007, 0, 20, 10, 0, 0));
+// > 'Wed, 10 Jan 2007 10:00:00 GMT'
+// > 'Wed, 10 Jan 2007 11:00:00 GMT'
+// > 'Sat, 20 Jan 2007 10:00:00 GMT'
+
+let fmt1 = new Intl.DateTimeFormat("en", {
+ year: '2-digit',
+ month: 'numeric',
+ day: 'numeric',
+ hour: 'numeric',
+ minute: 'numeric'
+});
+console.log(fmt1.format(date1));
+console.log(fmt1.formatRange(date1, date2));
+console.log(fmt1.formatRange(date1, date3));
+// > '1/10/07, 10:00 AM'
+// > '1/10/07, 10:00 – 11:00 AM'
+// > '1/10/07, 10:00 AM – 1/20/07, 10:00 AM'
+
+let fmt2 = new Intl.DateTimeFormat("en", {
+ year: 'numeric',
+ month: 'short',
+ day: 'numeric'
+});
+console.log(fmt2.format(date1));
+console.log(fmt2.formatRange(date1, date2));
+console.log(fmt2.formatRange(date1, date3));
+// > 'Jan 10, 2007'
+// > 'Jan 10, 2007'
+// > 'Jan 10 – 20, 2007'
+```
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- {{jsxref("Intl.DateTimeFormat")}}
diff --git a/files/ja/web/javascript/reference/global_objects/intl/datetimeformat/formatrangetoparts/index.html b/files/ja/web/javascript/reference/global_objects/intl/datetimeformat/formatrangetoparts/index.html
deleted file mode 100644
index be4d8a0bc4..0000000000
--- a/files/ja/web/javascript/reference/global_objects/intl/datetimeformat/formatrangetoparts/index.html
+++ /dev/null
@@ -1,81 +0,0 @@
----
-title: Intl.DateTimeFormat.prototype.formatRangeToParts()
-slug: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/formatRangeToParts
-tags:
- - Internationalization
- - JavaScript
- - Localization
- - Method
- - Reference
- - i18n
-translation_of: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/formatRangeToParts
----
-Intl.DateTimeFormat.prototype.formatRangeToParts() メソッドは、 DateTimeFormat フォーマッターで生成される期間の各部品を表すロケール特有のトークンを提供します。構文
-
-
-
-Intl.DateTimeFormat.prototype.formatRangeToParts(startDate, endDate)例
-
-基本的な formatRangeToParts の使い方
-
-let date1 = new Date(Date.UTC(2007, 0, 10, 10, 0, 0));
-let date2 = new Date(Date.UTC(2007, 0, 10, 11, 0, 0));
-// > 'Wed, 10 Jan 2007 10:00:00 GMT'
-// > 'Wed, 10 Jan 2007 11:00:00 GMT'
-
-let fmt = new Intl.DateTimeFormat("en", {
- hour: 'numeric',
- minute: 'numeric'
-});
-
-console.log(fmt.formatRange(date1, date2));
-// > '10:00 – 11:00 AM'
-
-fmt.formatRangeToParts(date1, date2);
-// return value:
-// [
-// { type: 'hour', value: '10', source: "startRange" },
-// { type: 'literal', value: ':', source: "startRange" },
-// { type: 'minute', value: '00', source: "startRange" },
-// { type: 'literal', value: ' – ', source: "shared" },
-// { type: 'hour', value: '11', source: "endRange" },
-// { type: 'literal', value: ':', source: "endRange" },
-// { type: 'minute', value: '00', source: "endRange" },
-// { type: 'literal', value: ' ', source: "shared" },
-// { type: 'dayPeriod', value: 'AM', source: "shared" }
-// ]
-
-仕様書
-
-
-
-
-
-
-
-
-
- 仕様書
-
-
-
-{{SpecName('Intl.DateTimeFormat.formatRange', '#sec-Intl.DateTimeFormat.prototype.formatRangeToParts', 'formatRangeToParts()')}}
- ブラウザーの互換性
-
-関連情報
-
-
-
diff --git a/files/ja/web/javascript/reference/global_objects/intl/datetimeformat/formatrangetoparts/index.md b/files/ja/web/javascript/reference/global_objects/intl/datetimeformat/formatrangetoparts/index.md
new file mode 100644
index 0000000000..034909ed3c
--- /dev/null
+++ b/files/ja/web/javascript/reference/global_objects/intl/datetimeformat/formatrangetoparts/index.md
@@ -0,0 +1,78 @@
+---
+title: Intl.DateTimeFormat.prototype.formatRangeToParts()
+slug: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/formatRangeToParts
+tags:
+ - DateTimeFormat
+ - Internationalization
+ - Intl
+ - JavaScript
+ - Localization
+ - Method
+ - Prototype
+ - Reference
+browser-compat: javascript.builtins.Intl.DateTimeFormat.formatRangeToParts
+translation_of: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/formatRangeToParts
+---
+{{JSRef}}
+
+**`Intl.DateTimeFormat.prototype.formatRangeToParts()`** メソッドは、 {{jsxref("Intl.DateTimeFormat")}} フォーマッターで生成される期間の各部品を表すロケール特有のトークンを提供します。
+
+{{EmbedInteractiveExample("pages/js/intl-datetimeformat-prototype-formatrangetoparts.html",
+ "taller")}}
+
+
+## 構文
+
+```js
+formatRangeToParts(startDate, endDate)
+```
+
+## 例
+
+### 基本的な formatRangeToParts の使い方
+
+このメソッドは2つの {{jsxref("Date")}} を受け取り、期間を書式化する際の各部品を表す*ロケール特有*のトークンを含む {{jsxref("Array")}} オブジェクトを返します。
+
+> **Note:** 返値は現在のロケールで表示されるので、以下のものとは異なる可能性があります。
+
+```js
+let date1 = new Date(Date.UTC(2007, 0, 10, 10, 0, 0));
+let date2 = new Date(Date.UTC(2007, 0, 10, 11, 0, 0));
+// > 'Wed, 10 Jan 2007 10:00:00 GMT'
+// > 'Wed, 10 Jan 2007 11:00:00 GMT'
+
+let fmt = new Intl.DateTimeFormat("en", {
+ hour: 'numeric',
+ minute: 'numeric'
+});
+
+console.log(fmt.formatRange(date1, date2));
+// > '10:00 – 11:00 AM'
+
+fmt.formatRangeToParts(date1, date2);
+// return value:
+// [
+// { type: 'hour', value: '10', source: "startRange" },
+// { type: 'literal', value: ':', source: "startRange" },
+// { type: 'minute', value: '00', source: "startRange" },
+// { type: 'literal', value: ' – ', source: "shared" },
+// { type: 'hour', value: '11', source: "endRange" },
+// { type: 'literal', value: ':', source: "endRange" },
+// { type: 'minute', value: '00', source: "endRange" },
+// { type: 'literal', value: ' ', source: "shared" },
+// { type: 'dayPeriod', value: 'AM', source: "shared" }
+// ]
+```
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- {{jsxref("Intl/DateTimeFormat/formatRange", "Intl.DateTimeFormat.prototype.formatRange()")}}
+- {{jsxref("Intl.DateTimeFormat")}}
diff --git a/files/ja/web/javascript/reference/global_objects/intl/datetimeformat/formattoparts/index.html b/files/ja/web/javascript/reference/global_objects/intl/datetimeformat/formattoparts/index.html
deleted file mode 100644
index 04e140d0e8..0000000000
--- a/files/ja/web/javascript/reference/global_objects/intl/datetimeformat/formattoparts/index.html
+++ /dev/null
@@ -1,239 +0,0 @@
----
-title: DateTimeFormat.prototype.formatToParts()
-slug: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/formatToParts
-tags:
- - DateTimeFormat
- - Internationalization
- - Intl
- - JavaScript
- - Method
- - Prototype
-translation_of: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/formatToParts
----
-Intl.DateTimeFormat.prototype.formatToParts() メソッドは、ロケールを意識した DateTimeFormat フォーマッターが生成する文字列のロケールを考慮した書式化を可能にします。構文
-
-dateTimeFormat.formatToParts(date)
-
-引数
-
-
-
-
-date {{optional_inline}}返値
-
-解説
-
-formatToParts() メソッドは、日付文字列のフォーマットをカスタマイズするときに役立ちます。これは、ロケール特有の部分を保持しながら、カスタム文字列を構築できるロケール特有のトークンを含むオブジェクトの {{jsxref("Array")}} を返します。formatToParts() メソッドが返却する構造は、このようになります。[
- { type: 'day', value: '17' },
- { type: 'weekday', value: 'Monday' }
-]
-
-
-
-
-17"。AM", "PM", "in the morning", "noon" など。BC" や "AD"。0" や "00" や "000" です。3" や "03"。/"、","、"o'clock"、"de"。00"。12"。2019" です。07" や "42"。UTC"。M" や "Monday"、"Montag"。2012" や "96"。geng-zi" など。ポリフィル
-
-例
-
-DateTimeFormat は、直接操作できないローカライズされた透過的でない文字列を出力します。var date = Date.UTC(2012, 11, 17, 3, 0, 42);
-
-var formatter = new Intl.DateTimeFormat('en-us', {
- weekday: 'long',
- year: 'numeric',
- month: 'numeric',
- day: 'numeric',
- hour: 'numeric',
- minute: 'numeric',
- second: 'numeric',
- fractionalSecondDigits: 3,
- hour12: true,
- timeZone: 'UTC'
-});
-
-formatter.format(date);
-// "Monday, 12/17/2012, 3:00:42.000 AM"
-
-
-formatToParts メソッドは、文字列を部品単位で提供することで、 DateTimeFormat フォーマッターによって生成された文字列のロケールを意識した書式設定ができるようになります。formatter.formatToParts(date);
-
-// return value:
-[
- { type: 'weekday', value: 'Monday' },
- { type: 'literal', value: ', ' },
- { type: 'month', value: '12' },
- { type: 'literal', value: '/' },
- { type: 'day', value: '17' },
- { type: 'literal', value: '/' },
- { type: 'year', value: '2012' },
- { type: 'literal', value: ', ' },
- { type: 'hour', value: '3' },
- { type: 'literal', value: ':' },
- { type: 'minute', value: '00' },
- { type: 'literal', value: ':' },
- { type: 'second', value: '42' },
- { type: 'fractionalSecond', value: '000' },
- { type: 'literal', value: ' ' },
- { type: 'dayPeriod', value: 'AM' }
-]
-
-
-var dateString = formatter.formatToParts(date).map(({type, value}) => {
- switch (type) {
- case 'dayPeriod': return `<b>${value}</b>`;
- default : return value;
- }
-}).reduce((string, part) => string + part);
-
-
-formatToParts() メソッドを使用する際に、日の部分が太字になります。console.log(formatter.format(date));
-// "Monday, 12/17/2012, 3:00:42.000 AM"
-
-console.log(dateString);
-// "Monday, 12/17/2012, 3:00:42.000 <b>AM</b>"
-
-名前付きの年と混合カレンダー
-
-formatToParts() の結果は、通常は年が存在するはずなのに、年の項目ではなく、4桁のグレゴリオ暦の年を含む relatedYear のエントリを含むことになります。バッグの中の項目を (任意の値で) year に設定すると、年と yearName グレゴリオ暦の relatedYear の両方が得られます。let opts = { year: "numeric", month: "numeric", day: "numeric" };
-let df = new Intl.DateTimeFormat("zh-u-ca-chinese", opts);
-df.formatToParts(Date.UTC(2012, 11, 17, 3, 0, 42));
-
-// return value
-[
- { type: 'relatedYear', value: '2012' },
- { type: 'literal', value: '年' },
- { type: 'month', value: '十一月' },
- { type: 'day', value: '4' }
-]
-
-
-year オプションがバッグ内で設定されていない場合 (任意の値に設定されている場合)、結果には relatedYear のみが含まれます。let df = new Intl.DateTimeFormat("zh-u-ca-chinese");
-df.formatToParts(Date.UTC(2012, 11, 17, 3, 0, 42));
-
-// 返値
-[
- { type: 'relatedYear', value: '2012' },
- { type: 'literal', value: '年' },
- { type: 'month', value: '十一月' },
- { type: 'day', value: '4' }
-]
-
-
-year を出力したい場合は、 .format() は一般的にこれらを並べて表示することができます。let df = new Intl.DateTimeFormat("zh-u-ca-chinese", {year: "numeric"});
-df.format(Date.UTC(2012, 11, 17, 3, 0, 42));
-
-// 返値
-2012壬辰年
-
-format で混在させることも可能になります。let df = new Intl.DateTimeFormat("en-u-ca-chinese", {year: "numeric"});
-let date = Date.UTC(2012, 11, 17, 3, 0, 42);
-df.format(date);
-
-// 返値
-2012(ren-chen)
-
-
-formatToParts の場合let opts = {month: 'numeric', day: 'numeric', year: "numeric"};
-let df = new Intl.DateTimeFormat("en-u-ca-chinese", opts);
-let date = Date.UTC(2012, 11, 17, 3);
-df.formatToParts(date)
-
-// 返値
-[
- { type: 'month', value: '11' },
- { type: 'literal', value: '/' },
- { type: 'day', value: '4' },
- { type: 'literal', value: '/' },
- { type: 'relatedYear', value: '2012' }
-]
-
-
-仕様書
-
-
-
-
-
-
-
-
-
- 仕様書
-
-
-
-{{SpecName('ES Int Draft', '#sec-Intl.DateTimeFormat.prototype.formatToParts', 'Intl.DateTimeFormat.prototype.formatToParts')}}
- ブラウザーの互換性
-
-関連情報
-
-
-
diff --git a/files/ja/web/javascript/reference/global_objects/intl/datetimeformat/formattoparts/index.md b/files/ja/web/javascript/reference/global_objects/intl/datetimeformat/formattoparts/index.md
new file mode 100644
index 0000000000..cbe6256671
--- /dev/null
+++ b/files/ja/web/javascript/reference/global_objects/intl/datetimeformat/formattoparts/index.md
@@ -0,0 +1,238 @@
+---
+title: Intl.DateTimeFormat.prototype.formatToParts()
+slug: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/formatToParts
+tags:
+ - DateTimeFormat
+ - Internationalization
+ - Intl
+ - JavaScript
+ - Localization
+ - Method
+ - Prototype
+ - Reference
+browser-compat: javascript.builtins.Intl.DateTimeFormat.formatToParts
+translation_of: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/formatToParts
+---
+{{JSRef}}
+
+**`Intl.DateTimeFormat.prototype.formatToParts()`** メソッドは、ロケールを考慮した {{jsxref("Intl.DateTimeFormat")}} フォーマッターが生成する文字列のロケールを考慮した書式化を可能にします。
+
+## 構文
+
+```js
+formatToParts(date)
+```
+
+### 引数
+
+- `date` {{optional_inline}}
+ - : 書式化する日付。
+
+### 返値
+
+{{jsxref("Array")}} で、書式化された日付のパーツを含むオブジェクトの配列です。
+
+## 解説
+
+`formatToParts()` メソッドは、日付文字列のフォーマットをカスタマイズするときに役立ちます。これは、ロケール特有の部分を保持しながら、カスタム文字列を構築できるロケール特有のトークンを含むオブジェクトの {{jsxref("Array")}} を返します。`formatToParts()` メソッドが返却する構造は、このようになります。
+
+```js
+[
+ { type: 'day', value: '17' },
+ { type: 'weekday', value: 'Monday' }
+]
+```
+
+渡される可能性がある type は以下のとおりです。
+
+- day
+ - : 日付として使用される文字列。たとえば、 "`17`"。
+- dayPeriod
+ - : 日付期間として使用される文字列。たとえば、 "`AM`", "`PM`", "`in the morning`", "`noon`" など。
+- era
+ - : 時代として使用される文字列。たとえば、"`BC`" や "`AD`"。
+- fractionalSecond
+ - : 小数点以下の秒として使用される文字列です。例えば "`0`" や "`00`" や "`000`" です。
+- hour
+ - : 時刻として使用される文字列。たとえば "`3`" や "`03`"。
+- literal
+ - : 日付や時刻の区切りとして使用される文字列。たとえば "`/`"、"`,`"、"`o'clock`"、"`de`"。
+- minute
+ - : 分として使用される文字列。たとえば、"`00`"。
+- month
+ - : 月として使用される文字列。たとえば、"`12`"。
+- relatedYear
+ - : カレンダーの表現が year ではなくyearNameである場合、関連する4桁のグレゴリオ暦の年に使用される文字列です。例えば "`2019`" です。
+- second
+ - : 秒として使用される文字列。たとえば、"`07`" や "`42`"。
+- timeZoneName
+ - : タイムゾーン名として使用される文字列。たとえば、"`UTC`"。
+- weekday
+ - : 曜日として使用される文字列。たとえば、"`M`" や "`Monday`"、"`Montag`"。
+- year
+ - : 年として使用される文字列。たとえば、"`2012`" や "`96`"。
+- yearName
+ - : 関連するコンテキストで yearName に使用される文字列、例えば "`geng-zi`" など。
+
+## ポリフィル
+
+この機能のポリフィルは、[提案リポジトリー](https://github.com/zbraniecki/proposal-intl-formatToParts)から利用できます。
+
+## 例
+
+`DateTimeFormat` は、直接操作できないローカライズされた透過的でない文字列を出力します。
+
+```js
+var date = Date.UTC(2012, 11, 17, 3, 0, 42);
+
+var formatter = new Intl.DateTimeFormat('en-us', {
+ weekday: 'long',
+ year: 'numeric',
+ month: 'numeric',
+ day: 'numeric',
+ hour: 'numeric',
+ minute: 'numeric',
+ second: 'numeric',
+ fractionalSecondDigits: 3,
+ hour12: true,
+ timeZone: 'UTC'
+});
+
+formatter.format(date);
+// "Monday, 12/17/2012, 3:00:42.000 AM"
+```
+
+しかし、多くのユーザーインターフェイスでは、この文字列の書式をカスタマイズしたいという要望があります。 `formatToParts` メソッドは、文字列を部品単位で提供することで、 `DateTimeFormat` フォーマッターによって生成された文字列のロケールを意識した書式設定ができるようになります。
+
+```js
+formatter.formatToParts(date);
+
+// return value:
+[
+ { type: 'weekday', value: 'Monday' },
+ { type: 'literal', value: ', ' },
+ { type: 'month', value: '12' },
+ { type: 'literal', value: '/' },
+ { type: 'day', value: '17' },
+ { type: 'literal', value: '/' },
+ { type: 'year', value: '2012' },
+ { type: 'literal', value: ', ' },
+ { type: 'hour', value: '3' },
+ { type: 'literal', value: ':' },
+ { type: 'minute', value: '00' },
+ { type: 'literal', value: ':' },
+ { type: 'second', value: '42' },
+ { type: 'fractionalSecond', value: '000' },
+ { type: 'literal', value: ' ' },
+ { type: 'dayPeriod', value: 'AM' }
+]
+```
+
+これで情報は個別に利用可能になり、カスタマイズされた方法で再び書式化して連結することができます。例えば、{{jsxref("Array.prototype.map()")}}、アロー関数、 switch 文、テンプレートリテラル、 {{jsxref("Array.prototype.join()")}} などを使用しています。
+
+```js
+var dateString = formatter.formatToParts(date).map(({type, value}) => {
+ switch (type) {
+ case 'dayPeriod': return `${value}`;
+ default : return value;
+ }
+}).join('');
+```
+
+これにより、 `formatToParts()` メソッドを使用する際に、日の部分が太字になります。
+
+```js
+console.log(formatter.format(date));
+// "Monday, 12/17/2012, 3:00:42.000 AM"
+
+console.log(dateString);
+// "Monday, 12/17/2012, 3:00:42.000 AM"
+```
+
+### 名前付きの年と混合カレンダー
+
+名前付きの年を使用している暦もあります。例えば、中国やチベットの暦では、 60 年周期の[干支](https://ja.wikipedia.org/wiki/%E5%B9%B2%E6%94%AF)を使用しています。これらの年は、グレゴリオ暦の年と関連付けて識別されます。このような場合、 `formatToParts()` の結果は、通常は年が存在するはずなのに、年の項目ではなく、 4 桁のグレゴリオ暦の年を含む `relatedYear` の項目を含むことになります。バッグの中の項目を (任意の値で) `year` に設定すると、年と `yearName` グレゴリオ暦の `relatedYear` の両方が得られます。
+
+```js
+let opts = { year: "numeric", month: "numeric", day: "numeric" };
+let df = new Intl.DateTimeFormat("zh-u-ca-chinese", opts);
+df.formatToParts(Date.UTC(2012, 11, 17, 3, 0, 42));
+
+// return value
+[
+ { type: 'relatedYear', value: '2012' },
+ { type: 'literal', value: '年' },
+ { type: 'month', value: '十一月' },
+ { type: 'day', value: '4' }
+]
+```
+
+`year` オプションがバッグ内で設定されていない場合 (任意の値に設定されている場合)、結果には `relatedYear` のみが含まれます。
+
+```js
+let df = new Intl.DateTimeFormat("zh-u-ca-chinese");
+df.formatToParts(Date.UTC(2012, 11, 17, 3, 0, 42));
+
+// 返値
+[
+ { type: 'relatedYear', value: '2012' },
+ { type: 'literal', value: '年' },
+ { type: 'month', value: '十一月' },
+ { type: 'day', value: '4' }
+]
+```
+
+`year` を出力したい場合は、 `.format()` は一般的にこれらを並べて表示することができます。
+
+```js
+let df = new Intl.DateTimeFormat("zh-u-ca-chinese", {year: "numeric"});
+df.format(Date.UTC(2012, 11, 17, 3, 0, 42));
+
+// 返値
+2012壬辰年
+```
+
+これにより、ロケールとカレンダーを両方の `format` で混在させることも可能になります。
+
+```js
+let df = new Intl.DateTimeFormat("en-u-ca-chinese", {year: "numeric"});
+let date = Date.UTC(2012, 11, 17, 3, 0, 42);
+df.format(date);
+
+// 返値
+2012(ren-chen)
+```
+
+および `formatToParts` の場合
+
+```js
+let opts = {month: 'numeric', day: 'numeric', year: "numeric"};
+let df = new Intl.DateTimeFormat("en-u-ca-chinese", opts);
+let date = Date.UTC(2012, 11, 17, 3);
+df.formatToParts(date)
+
+// 返値
+[
+ { type: 'month', value: '11' },
+ { type: 'literal', value: '/' },
+ { type: 'day', value: '4' },
+ { type: 'literal', value: '/' },
+ { type: 'relatedYear', value: '2012' }
+]
+```
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- {{jsxref("Intl.DateTimeFormat")}}
+- {{jsxref("Intl/DateTimeFormat/format", "Intl.DateTimeFormat.prototype.format()")}}
+- {{jsxref("Date.prototype.toLocaleString()")}}
+- {{jsxref("Date.prototype.toLocaleDateString()")}}
+- {{jsxref("Date.prototype.toLocaleTimeString()")}}
diff --git a/files/ja/web/javascript/reference/global_objects/intl/datetimeformat/index.html b/files/ja/web/javascript/reference/global_objects/intl/datetimeformat/index.html
deleted file mode 100644
index 9b18a60a81..0000000000
--- a/files/ja/web/javascript/reference/global_objects/intl/datetimeformat/index.html
+++ /dev/null
@@ -1,182 +0,0 @@
----
-title: Intl.DateTimeFormat
-slug: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat
-tags:
- - Class
- - DateTimeFormat
- - Internationalization
- - Intl
- - JavaScript
- - Localization
- - Reference
-translation_of: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat
-browser-compat: javascript.builtins.Intl.DateTimeFormat
----
-Intl.DateTimeFormat オブジェクトは、言語に応じた日付と時刻の書式化を可能にするオブジェクトのためのコンストラクターです。コンストラクター
-
-
-
-
-DateTimeFormat オブジェクトを生成します。静的メソッド
-
-
-
-
-インスタンスメソッド
-
-
-
-
-例
-
-DateTimeFormat の使用
-
-DateTimeFormat は既定のロケールとオプションを使用します。var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));
-
-// toLocaleString without arguments depends on the implementation,
-// the default locale, and the default time zone
-console.log(new Intl.DateTimeFormat().format(date));
-// → "12/19/2012" if run with en-US locale (language) and time zone America/Los_Angeles (UTC-0800)
-
-
-locales の使用
-
-locales 引数を使用して、その言語 (およびおそらくいくつかのフォールバック言語) を指定してください。var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));
-
-// Results below use the time zone of America/Los_Angeles (UTC-0800, Pacific Standard Time)
-
-// US English uses month-day-year order
-console.log(new Intl.DateTimeFormat('en-US').format(date));
-// → "12/19/2012"
-
-// British English uses day-month-year order
-console.log(new Intl.DateTimeFormat('en-GB').format(date));
-// → "19/12/2012"
-
-// Korean uses year-month-day order
-console.log(new Intl.DateTimeFormat('ko-KR').format(date));
-// → "2012. 12. 19."
-
-// Arabic in most Arabic speaking countries uses real Arabic digits
-console.log(new Intl.DateTimeFormat('ar-EG').format(date));
-// → "١٩/١٢/٢٠١٢"
-
-// for Japanese, applications may want to use the Japanese calendar,
-// where 2012 was the year 24 of the Heisei era
-console.log(new Intl.DateTimeFormat('ja-JP-u-ca-japanese').format(date));
-// → "24/12/19"
-
-// when requesting a language that may not be supported, such as
-// Balinese, include a fallback language, in this case Indonesian
-console.log(new Intl.DateTimeFormat(['ban', 'id']).format(date));
-// → "19/12/2012"
-
-
-options の使用
-
-options 引数を使用してカスタマイズできます。var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0, 200));
-
-// request a weekday along with a long date
-var options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };
-console.log(new Intl.DateTimeFormat('de-DE', options).format(date));
-// → "Donnerstag, 20. Dezember 2012"
-
-// an application may want to use UTC and make that visible
-options.timeZone = 'UTC';
-options.timeZoneName = 'short';
-console.log(new Intl.DateTimeFormat('en-US', options).format(date));
-// → "Thursday, December 20, 2012, GMT"
-
-// sometimes you want to be more precise
-options = {
- hour: 'numeric', minute: 'numeric', second: 'numeric',
- timeZone: 'Australia/Sydney',
- timeZoneName: 'short'
-};
-console.log(new Intl.DateTimeFormat('en-AU', options).format(date));
-// → "2:00:00 pm AEDT"
-
-// sometimes you want to be very precise
-options.fractionalSecondDigits = 3; //number digits for fraction-of-seconds
-console.log(new Intl.DateTimeFormat('en-AU', options).format(date));
-// → "2:00:00.200 pm AEDT"
-
-// sometimes even the US needs 24-hour time
-options = {
- year: 'numeric', month: 'numeric', day: 'numeric',
- hour: 'numeric', minute: 'numeric', second: 'numeric',
- hour12: false,
- timeZone: 'America/Los_Angeles'
-};
-console.log(new Intl.DateTimeFormat('en-US', options).format(date));
-// → "12/19/2012, 19:00:00"
-
-// to specify options but use the browser's default locale, use 'default'
-console.log(new Intl.DateTimeFormat('default', options).format(date));
-// → "12/19/2012, 19:00:00"
-
-// sometimes it's helpful to include the period of the day
-options = {hour: "numeric", dayPeriod: "short"};
-console.log(new Intl.DateTimeFormat('en-US', options).format(date));
-// → 10 at night
-
-
-options arguments:var options = {calendar: 'chinese', numberingSystem: 'arab'};
-var dateFormat = new Intl.DateTimeFormat('default', options);
-var usedOptions = dateFormat.resolvedOptions();
-
-console.log(usedOptions.calendar);
-// → "chinese"
-
-console.log(usedOptions.numberingSystem);
-// → "arab"
-
-console.log(usedOptions.timeZone);
-// → "America/New_York" (the users default timezone)
-
-
-ポリフィル
-
-仕様書
-
-{{Specifications}}
-
-ブラウザーの互換性
-
-関連情報
-
-
-
diff --git a/files/ja/web/javascript/reference/global_objects/intl/datetimeformat/index.md b/files/ja/web/javascript/reference/global_objects/intl/datetimeformat/index.md
new file mode 100644
index 0000000000..95faa9574f
--- /dev/null
+++ b/files/ja/web/javascript/reference/global_objects/intl/datetimeformat/index.md
@@ -0,0 +1,179 @@
+---
+title: Intl.DateTimeFormat
+slug: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat
+tags:
+ - Class
+ - DateTimeFormat
+ - Internationalization
+ - Intl
+ - JavaScript
+ - Localization
+ - Reference
+translation_of: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat
+browser-compat: javascript.builtins.Intl.DateTimeFormat
+---
+{{JSRef}}
+
+**`Intl.DateTimeFormat`** オブジェクトは、言語に応じた日付と時刻の書式化を可能にします。
+
+{{EmbedInteractiveExample("pages/js/intl-datetimeformat.html")}}
+
+
+## コンストラクター
+
+- {{jsxref("Intl/DateTimeFormat/DateTimeFormat", "Intl.DateTimeFormat()")}}
+ - : 新しい `DateTimeFormat` オブジェクトを生成します。
+
+## 静的メソッド
+
+- {{jsxref("Intl/DateTimeFormat/supportedLocalesOf", "Intl.DateTimeFormat.supportedLocalesOf()")}}
+ - : 指定されたロケールのうち、実行時の既定のロケールにフォールバックせずに対応されるものを配列に収めて返します。
+
+## インスタンスメソッド
+
+- {{jsxref("Intl/DateTimeFormat/format", "Intl.DateTimeFormat.prototype.format()")}}
+ - : ロケールおよびこの {{jsxref("Intl/DateTimeFormat", "DateTimeFormat")}} オブジェクトの書式化オプションに則って日付を書式化するゲッター関数です。
+- {{jsxref("Intl/DateTimeFormat/formatToParts", "Intl.DateTimeFormat.prototype.formatToParts()")}}
+ - : オブジェクトの {{jsxref("Array")}} を返し、これは専用のロケールを意識した書式で使用することができる部品内の数値文字列を表します。
+- {{jsxref("Intl/DateTimeFormat/resolvedOptions", "Intl.DateTimeFormat.prototype.resolvedOptions()")}}
+ - : ローケルを反映しているプロパティとオブジェクトの初期化中に計算された照合オプションをもった新しいオブジェクトを返します。
+- {{jsxref("Intl/DateTimeFormat/formatRange", "Intl.DateTimeFormat.prototype.formatRange()")}}
+ - : このメソッドは 2 つの [Date](/ja/docs/Web/JavaScript/Reference/Global_Objects/Date) を受け取り、 {{jsxref("Intl/DateTimeFormat", "DateTimeFormat")}} インスタンスを生成する際に指定されたロケールとオプションに基づいて、最も簡潔な方法で日付の範囲を書式化します。
+- {{jsxref("Intl/DateTimeFormat/formatRangeToParts", "Intl.DateTimeFormat.prototype.formatRangeToParts()")}}
+ - : このメソッドは 2 つの [Date](/ja/docs/Web/JavaScript/Reference/Global_Objects/Date) を受け取り、書式化された日付の範囲の各部分を表すロケール固有のトークンを含むオブジェクトの配列を返します。
+
+## 例
+
+### DateTimeFormat の使用
+
+基本的に、ロケールを指定せずに使用すると、 `DateTimeFormat` は既定のロケールとオプションを使用します。
+
+```js
+var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));
+
+// toLocaleString without arguments depends on the implementation,
+// the default locale, and the default time zone
+console.log(new Intl.DateTimeFormat().format(date));
+// → "12/19/2012" if run with en-US locale (language) and time zone America/Los_Angeles (UTC-0800)
+```
+
+### locales の使用
+
+この例では、ローカライズされた日付と時刻の形式のバリエーションの一部示しています。アプリケーションのユーザーインターフェイスで使用される言語のフォーマットを取得するには、 `locales` 引数を使用して、その言語 (およびおそらくいくつかのフォールバック言語) を指定してください。
+
+```js
+var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));
+
+// Results below use the time zone of America/Los_Angeles (UTC-0800, Pacific Standard Time)
+
+// US English uses month-day-year order
+console.log(new Intl.DateTimeFormat('en-US').format(date));
+// → "12/19/2012"
+
+// British English uses day-month-year order
+console.log(new Intl.DateTimeFormat('en-GB').format(date));
+// → "19/12/2012"
+
+// Korean uses year-month-day order
+console.log(new Intl.DateTimeFormat('ko-KR').format(date));
+// → "2012. 12. 19."
+
+// Arabic in most Arabic speaking countries uses real Arabic digits
+console.log(new Intl.DateTimeFormat('ar-EG').format(date));
+// → "١٩/١٢/٢٠١٢"
+
+// for Japanese, applications may want to use the Japanese calendar,
+// where 2012 was the year 24 of the Heisei era
+console.log(new Intl.DateTimeFormat('ja-JP-u-ca-japanese').format(date));
+// → "24/12/19"
+
+// when requesting a language that may not be supported, such as
+// Balinese, include a fallback language, in this case Indonesian
+console.log(new Intl.DateTimeFormat(['ban', 'id']).format(date));
+// → "19/12/2012"
+```
+
+### options の使用
+
+日付と時刻の書式は `options` 引数を使用してカスタマイズできます。
+
+```js
+var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0, 200));
+
+// request a weekday along with a long date
+var options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };
+console.log(new Intl.DateTimeFormat('de-DE', options).format(date));
+// → "Donnerstag, 20. Dezember 2012"
+
+// an application may want to use UTC and make that visible
+options.timeZone = 'UTC';
+options.timeZoneName = 'short';
+console.log(new Intl.DateTimeFormat('en-US', options).format(date));
+// → "Thursday, December 20, 2012, GMT"
+
+// sometimes you want to be more precise
+options = {
+ hour: 'numeric', minute: 'numeric', second: 'numeric',
+ timeZone: 'Australia/Sydney',
+ timeZoneName: 'short'
+};
+console.log(new Intl.DateTimeFormat('en-AU', options).format(date));
+// → "2:00:00 pm AEDT"
+
+// sometimes you want to be very precise
+options.fractionalSecondDigits = 3; //number digits for fraction-of-seconds
+console.log(new Intl.DateTimeFormat('en-AU', options).format(date));
+// → "2:00:00.200 pm AEDT"
+
+// sometimes even the US needs 24-hour time
+options = {
+ year: 'numeric', month: 'numeric', day: 'numeric',
+ hour: 'numeric', minute: 'numeric', second: 'numeric',
+ hour12: false,
+ timeZone: 'America/Los_Angeles'
+};
+console.log(new Intl.DateTimeFormat('en-US', options).format(date));
+// → "12/19/2012, 19:00:00"
+
+// to specify options but use the browser's default locale, use 'default'
+console.log(new Intl.DateTimeFormat('default', options).format(date));
+// → "12/19/2012, 19:00:00"
+
+// sometimes it's helpful to include the period of the day
+options = {hour: "numeric", dayPeriod: "short"};
+console.log(new Intl.DateTimeFormat('en-US', options).format(date));
+// → 10 at night
+```
+
+The used calendar and numbering formats can also be set independently via `options` arguments:
+
+```js
+var options = {calendar: 'chinese', numberingSystem: 'arab'};
+var dateFormat = new Intl.DateTimeFormat('default', options);
+var usedOptions = dateFormat.resolvedOptions();
+
+console.log(usedOptions.calendar);
+// → "chinese"
+
+console.log(usedOptions.numberingSystem);
+// → "arab"
+
+console.log(usedOptions.timeZone);
+// → "America/New_York" (the users default timezone)
+```
+
+## ポリフィル
+
+[formatjs Intl.DateTimeFormat polyfill](https://formatjs.io/docs/polyfills/intl-datetimeformat)
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- {{jsxref("Intl")}}
diff --git a/files/ja/web/javascript/reference/global_objects/intl/datetimeformat/resolvedoptions/index.html b/files/ja/web/javascript/reference/global_objects/intl/datetimeformat/resolvedoptions/index.html
deleted file mode 100644
index c59e62e79c..0000000000
--- a/files/ja/web/javascript/reference/global_objects/intl/datetimeformat/resolvedoptions/index.html
+++ /dev/null
@@ -1,93 +0,0 @@
----
-title: Intl.DateTimeFormat.prototype.resolvedOptions()
-slug: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/resolvedOptions
-tags:
- - DateTimeFormat
- - Internationalization
- - Intl
- - JavaScript
- - Method
- - Prototype
-translation_of: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/resolvedOptions
----
-Intl.Collator.prototype.resolvedOptions() メソッドは、この {{jsxref("Collator")}} オブジェクトの初期化時に計算されたロケールと照合オプションを反映したプロパティを持つ新しいオブジェクトを返します。構文
-
-dateTimeFormat.resolvedOptions()
-
-返値
-
-解説
-
-
-
-
-localelocale に含まれます。calendarnumberingSystem"ca" および "nu" で要求された値、または既定値が入ります。timeZoneoptions 引数の同名のプロパティで要求された値です。提供された値がなければ {{jsxref("undefined")}} (ランタイムの既定のタイムゾーン) です。警告: アプリケーションは {{jsxref("undefined")}} が返されることに依存しないでください。将来のバージョンではランタイムの既定のタイムゾーンを識別する {{jsxref("String")}} 値が返されるようになる可能性があるからです。hour12options 引数の同名のプロパティで要求された値、または既定値が入ります。weekdayerayearmonthdayhourminutesecondtimeZoneNameoptions 引数の対応するプロパティと、選択したロケールでの日付時刻の書式設定に利用可能な組み合わせや表現との間で、書式のマッチングを行った結果の値。これらのプロパティの中には、対応するコンポーネントが書式化された出力では表現されないものもあります。例
-
-resolvedOptions メソッドの使用
-
-var germanFakeRegion = new Intl.DateTimeFormat('de-XX', { timeZone: 'UTC' });
-var usedOptions = germanFakeRegion.resolvedOptions();
-
-usedOptions.locale; // "de"
-usedOptions.calendar; // "gregory"
-usedOptions.numberingSystem; // "latn"
-usedOptions.timeZone; // "UTC"
-usedOptions.month; // "numeric"
-
-
-仕様書
-
-
-
-
-
-
-
- 仕様書
-
-
-
-{{SpecName('ES Int Draft', '#sec-intl.datetimeformat.prototype.resolvedoptions', 'Intl.DateTimeFormat.prototype.resolvedOptions')}}
- ブラウザーの互換性
-
-関連情報
-
-
-
diff --git a/files/ja/web/javascript/reference/global_objects/intl/datetimeformat/resolvedoptions/index.md b/files/ja/web/javascript/reference/global_objects/intl/datetimeformat/resolvedoptions/index.md
new file mode 100644
index 0000000000..6ceb4c773f
--- /dev/null
+++ b/files/ja/web/javascript/reference/global_objects/intl/datetimeformat/resolvedoptions/index.md
@@ -0,0 +1,75 @@
+---
+title: Intl.DateTimeFormat.prototype.resolvedOptions()
+slug: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/resolvedOptions
+tags:
+ - DateTimeFormat
+ - Internationalization
+ - Intl
+ - JavaScript
+ - Localization
+ - Method
+ - Prototype
+ - Reference
+browser-compat: javascript.builtins.Intl.DateTimeFormat.resolvedOptions
+translation_of: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/resolvedOptions
+---
+{{JSRef}}
+
+**`Intl.DateTimeFormat.prototype.resolvedOptions()`** メソッドは、この {{jsxref("Intl/DateTimeFormat")}} オブジェクトの初期化時に計算されたロケールや日付と時刻の整形オプションを反映したプロパティを持つ新しいオブジェクトを返します。
+
+{{EmbedInteractiveExample("pages/js/intl-datetimeformat-prototype-resolvedoptions.html")}}
+
+
+## 構文
+
+```js
+resolvedOptions()
+```
+
+### 返値
+
+この {{jsxref("Intl/DateTimeFormat")}} オブジェクトの初期化時に計算されたロケールと照合オプションを反映したプロパティを持つ新しいオブジェクトです。
+
+## 解説
+
+返されるオブジェクトには以下のプロパティがあります。
+
+- `locale`
+ - : 実際に使用したロケールの BCP 47 言語タグ。このロケールにつながる入力 BCP 47 言語タグに Unicode 拡張値が要求された場合、要求されたキーと値のペアのうち、このロケールで対応しているものが `locale` に含まれます。
+- `calendar`
+ - : 例: "gregory"
+- `numberingSystem`
+ - : Unicode 拡張キーの `"ca"` および `"nu"` で要求された値、または既定値が入ります。
+- `timeZone`
+ - : `options` 引数の同名のプロパティで要求された値です。提供された値がなければ {{jsxref("undefined")}} (ランタイムの既定のタイムゾーン) です。警告: アプリケーションは {{jsxref("undefined")}} が返されることに依存しないでください。将来のバージョンではランタイムの既定のタイムゾーンを識別する {{jsxref("String")}} 値が返されるようになる可能性があるからです。
+- `hour12`
+ - : `options` 引数の同名のプロパティで要求された値、または既定値が入ります。
+- `weekday`, `era`, `year`, `month`, `day`, `hour`, `minute`, `second`, `timeZoneName`
+ - : `options` 引数の対応するプロパティと、選択したロケールでの日付時刻の書式設定に利用可能な組み合わせや表現との間で、書式のマッチングを行った結果の値。これらのプロパティの中には、対応するコンポーネントが書式化された出力では表現されないものもあります。
+
+## 例
+
+### resolvedOptions メソッドの使用
+
+```js
+var germanFakeRegion = new Intl.DateTimeFormat('de-XX', { timeZone: 'UTC' });
+var usedOptions = germanFakeRegion.resolvedOptions();
+
+usedOptions.locale; // "de"
+usedOptions.calendar; // "gregory"
+usedOptions.numberingSystem; // "latn"
+usedOptions.timeZone; // "UTC"
+usedOptions.month; // "numeric"
+```
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- {{jsxref("Intl.DateTimeFormat")}}
diff --git a/files/ja/web/javascript/reference/global_objects/intl/datetimeformat/supportedlocalesof/index.html b/files/ja/web/javascript/reference/global_objects/intl/datetimeformat/supportedlocalesof/index.html
deleted file mode 100644
index 0108a95679..0000000000
--- a/files/ja/web/javascript/reference/global_objects/intl/datetimeformat/supportedlocalesof/index.html
+++ /dev/null
@@ -1,83 +0,0 @@
----
-title: Intl.DateTimeFormat.supportedLocalesOf()
-slug: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/supportedLocalesOf
-tags:
- - DateTimeFormat
- - Internationalization
- - JavaScript
- - Method
- - Prototype
-translation_of: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/supportedLocalesOf
----
-Intl.DateTimeFormat.supportedLocalesOf() メソッドは、ランタイムの既定のロケールで代替する必要なく日時の書式で対応されているものを含む配列を返します。構文
-
-Intl.DateTimeFormat.supportedLocalesOf(locales[, options])
-
-引数
-
-
-
-
-localeslocales 引数の一般的な形式については、 {{jsxref("Intl", "Intl のページ", "#Locale_identification_and_negotiation", 1)}}を参照してください。options
-
- localeMatcherlookup および best fit で、既定値は best fit です。このオプションの詳細は、 {{jsxref("Intl", "Intl のページ", "#Locale_negotiation", 1)}}を参照してください。返値
-
-解説
-
-locales で提供されている言語タグのサブセットを含む配列を返します。返される言語タグは、ランタイムが日時のロケールに対応しているもので、使用しているロケール一致アルゴリズムで一致しているとみなされているものです。例
-
-supportedLocalesOf() の使用
-
-supportedLocalesOf はインドネシア語とドイツ語の言語タグを変更せずに返しますが、 pinyin の照合は日時の書式には関係なく、インドネシア語でも使用されません。ここでの lookup アルゴリズムの仕様に注意してください — バリ語話者のほとんどはインドネシア語も理解しているので、 best fit のマッチャーはインドネシア語がバリ語に適切に一致すると判断し、バリ語の言語タグも返すかもしれません。var locales = ['ban', 'id-u-co-pinyin', 'de-ID'];
-var options = { localeMatcher: 'lookup' };
-console.log(Intl.DateTimeFormat.supportedLocalesOf(locales, options).join(', '));
-// → "id-u-co-pinyin, de-ID"
-
-
-仕様書
-
-
-
-
-
-
-
- 仕様書
-
-
-
-{{SpecName('ES Int Draft', '#sec-intl.datetimeformat.supportedlocalesof', 'Intl.DateTimeFormat.supportedLocalesOf')}}
- ブラウザーの互換性
-
-関連情報
-
-
-
diff --git a/files/ja/web/javascript/reference/global_objects/intl/datetimeformat/supportedlocalesof/index.md b/files/ja/web/javascript/reference/global_objects/intl/datetimeformat/supportedlocalesof/index.md
new file mode 100644
index 0000000000..4c5e19d610
--- /dev/null
+++ b/files/ja/web/javascript/reference/global_objects/intl/datetimeformat/supportedlocalesof/index.md
@@ -0,0 +1,71 @@
+---
+title: Intl.DateTimeFormat.supportedLocalesOf()
+slug: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/supportedLocalesOf
+tags:
+ - DateTimeFormat
+ - Internationalization
+ - Intl
+ - JavaScript
+ - Localization
+ - Method
+ - Reference
+browser-compat: javascript.builtins.Intl.DateTimeFormat.supportedLocalesOf
+translation_of: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/supportedLocalesOf
+---
+{{JSRef}}
+
+**`Intl.DateTimeFormat.supportedLocalesOf()`** メソッドは、ランタイムの既定のロケールで代替する必要なく日時の書式で対応されているものを含む配列を返します。
+
+{{EmbedInteractiveExample("pages/js/intl-datetimeformat-prototype-supportedlocalesof.html","shorter")}}
+
+
+## 構文
+
+```js
+Intl.DateTimeFormat.supportedLocalesOf(locales)
+Intl.DateTimeFormat.supportedLocalesOf(locales, options)
+```
+
+### 引数
+
+- `locales`
+ - : BCP 47 言語タグを持つ文字列、またはそのような文字列の配列です。 `locales` 引数の一般的な形式については、 {{jsxref("Intl", "Intl", "#Locale_identification_and_negotiation", 1)}} のページを参照してください。
+- `options` {{optional_inline}}
+
+ - : 省略可能です。以下のプロパティを持つことがあるオブジェクトです。
+
+ - `localeMatcher`
+ - : 使用するロケールの一致アルゴリズムです。指定可能な値は `lookup` および `best fit` で、既定値は `best fit` です。このオプションの詳細は、 {{jsxref("Intl", "Intl", "#Locale_negotiation", 1)}} のページを参照してください。
+
+### 返値
+
+指定したロケールタグのサブセットを表す文字列の配列で、ランタイムの既定のロケールで代替する必要なく日時の書式で対応されているものを含みます。
+
+## 解説
+
+`locales` で提供されている言語タグのサブセットを含む配列を返します。返される言語タグは、ランタイムが日時のロケールに対応しているもので、使用しているロケール一致アルゴリズムで一致しているとみなされているものです。
+
+## 例
+
+### supportedLocalesOf() の使用
+
+日時の書式でインドネシア語とドイツ語に対応しており、バリ語に対応していないランタイムを想定すると、 `supportedLocalesOf` はインドネシア語とドイツ語の言語タグを変更せずに返しますが、 pinyin の照合は日時の書式には関係なく、インドネシア語でも使用されません。ここでの `lookup` アルゴリズムの仕様に注意してください — バリ語話者のほとんどはインドネシア語も理解しているので、 `best fit` のマッチャーはインドネシア語がバリ語に適切に一致すると判断し、バリ語の言語タグも返すかもしれません。
+
+```js
+const locales = ['ban', 'id-u-co-pinyin', 'de-ID'];
+const options = { localeMatcher: 'lookup' };
+console.log(Intl.DateTimeFormat.supportedLocalesOf(locales, options).join(', '));
+// → "id-u-co-pinyin, de-ID"
+```
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- {{jsxref("Intl.DateTimeFormat")}}
--
cgit v1.2.3-54-g00ecf
From 8fd187f66427d1181bf7cfd225360cc267a73f2b Mon Sep 17 00:00:00 2001
From: Masahiro FUJIMOTO propertyIsEnumerable() メソッドは、指定されたプロパティが列挙可能で、オブジェクト自身のプロパティであることを示す Boolean を返します。構文
-
-
-
-obj.propertyIsEnumerable(prop)引数
-
-
-
-
-prop返値
-
-解説
-
-propertyIsEnumerable メソッドを持っています。このメソッドはあるオブジェクトのプロパティが、プロトタイプチェーンを通じて継承されたプロパティを除いて {{jsxref("Statements/for...in", "for...in")}} ループで列挙可能かどうかを特定することができます。もしオブジェクトが指定されたプロパティを持っていない場合、このメソッドは false を返します。例
-
-
-
-propertyIsEnumerable の基本的な使い方propertyIsEnumerable の使い方を示しています。var o = {};
-var a = [];
-o.prop = 'is enumerable';
-a[0] = 'is enumerable';
-
-o.propertyIsEnumerable('prop'); // true を返す
-a.propertyIsEnumerable(0); // true を返す
-
-
-ユーザー定義オブジェクトと組み込みオブジェクト
-
-var a = ['is enumerable'];
-
-a.propertyIsEnumerable(0); // true を返す
-a.propertyIsEnumerable('length'); // false を返す
-
-Math.propertyIsEnumerable('random'); // false を返す
-this.propertyIsEnumerable('Math'); // false を返す
-
-
-直接のプロパティと継承されたプロパティ
-
-var a = [];
-a.propertyIsEnumerable('constructor'); // false を返す
-
-function firstConstructor() {
- this.property = 'is not enumerable';
-}
-
-firstConstructor.prototype.firstMethod = function() {};
-
-function secondConstructor() {
- this.method = function method() { return 'is enumerable'; };
-}
-
-secondConstructor.prototype = new firstConstructor;
-secondConstructor.prototype.constructor = secondConstructor;
-
-var o = new secondConstructor();
-o.arbitraryProperty = 'is enumerable';
-
-o.propertyIsEnumerable('arbitraryProperty'); // true を返す
-o.propertyIsEnumerable('method'); // true を返す
-o.propertyIsEnumerable('property'); // false を返す
-
-o.property = 'is enumerable';
-
-o.propertyIsEnumerable('property'); // true を返す
-
-// これらはすべて false を返します。これは、 (最後の2つは for-in で
-// 反復処理可能であるにもかかわらず) propertyIsEnumerable が考慮しない
-// プロトタイプであるためです。
-o.propertyIsEnumerable('prototype'); // false を返す (as of JS 1.8.1/FF3.6)
-o.propertyIsEnumerable('constructor'); // false を返す
-o.propertyIsEnumerable('firstMethod'); // false を返す
-
-
-仕様書
-
-
-
-
-
-
-
-
-
- 仕様書
-
-
-
-{{SpecName('ESDraft', '#sec-object.prototype.propertyisenumerable', 'Object.prototype.propertyIsEnumerable')}}
- ブラウザーの互換性
-
-関連情報
-
-
-
diff --git a/files/ja/web/javascript/reference/global_objects/object/propertyisenumerable/index.md b/files/ja/web/javascript/reference/global_objects/object/propertyisenumerable/index.md
new file mode 100644
index 0000000000..c2b09a9921
--- /dev/null
+++ b/files/ja/web/javascript/reference/global_objects/object/propertyisenumerable/index.md
@@ -0,0 +1,120 @@
+---
+title: Object.prototype.propertyIsEnumerable()
+slug: Web/JavaScript/Reference/Global_Objects/Object/propertyIsEnumerable
+tags:
+ - JavaScript
+ - メソッド
+ - Object
+ - プロトタイプ
+browser-compat: javascript.builtins.Object.propertyIsEnumerable
+translation_of: Web/JavaScript/Reference/Global_Objects/Object/propertyIsEnumerable
+---
+{{JSRef}}
+
+**`propertyIsEnumerable()`** メソッドは、指定されたプロパティが列挙可能で、かつオブジェクト自身のプロパティであるかどうかを示す論理値を返します。
+
+{{EmbedInteractiveExample("pages/js/object-prototype-propertyisenumerable.html", "taller")}}
+
+## 構文
+
+```js
+propertyIsEnumerable(prop)
+```
+
+### 引数
+
+- `prop`
+ - : 調べたいプロパティの名前です。
+
+### 返値
+
+`true` または `false` の値で、指定されたプロパティが列挙可能であり、かつオブジェクト自身のプロパティであるかどうかを示します。
+
+## 解説
+
+すべてのオブジェクトは `propertyIsEnumerable` メソッドを持っています。このメソッドはあるオブジェクトのプロパティが、プロトタイプチェーンを通じて継承されたプロパティを除いて {{jsxref("Statements/for...in", "for...in")}} ループで列挙可能かどうかを特定することができます。もしオブジェクトが指定されたプロパティを持っていない場合、このメソッドは `false` を返します。
+
+> **Note:** 列挙可能なプロパティは {{jsxref("Statements/for...in", "for...in")}} ループで反復処理されますが、 {{jsxref("Global_Objects/Symbol", "Symbol")}} は含まれないことに留意してください。
+
+## 例
+
+### `propertyIsEnumerable` の基本的な使い方
+
+以下の例はオブジェクトと配列での `propertyIsEnumerable` の使い方を示しています。
+
+```js
+var o = {};
+var a = [];
+o.prop = 'is enumerable';
+a[0] = 'is enumerable';
+
+o.propertyIsEnumerable('prop'); // true を返す
+a.propertyIsEnumerable(0); // true を返す
+```
+
+### ユーザー定義オブジェクトと組み込みオブジェクト
+
+以下の例は、ユーザー定義プロパティと組み込みプロパティの列挙可能性を実証しています。
+
+```js
+var a = ['is enumerable'];
+
+a.propertyIsEnumerable(0); // true を返す
+a.propertyIsEnumerable('length'); // false を返す
+
+Math.propertyIsEnumerable('random'); // false を返す
+this.propertyIsEnumerable('Math'); // false を返す
+```
+
+直接のプロパティと継承されたプロパティ
+
+```js
+var a = [];
+a.propertyIsEnumerable('constructor'); // false を返す
+
+function firstConstructor() {
+ this.property = 'is not enumerable';
+}
+
+firstConstructor.prototype.firstMethod = function() {};
+
+function secondConstructor() {
+ this.method = function() { return 'is enumerable'; };
+}
+
+secondConstructor.prototype = new firstConstructor;
+secondConstructor.prototype.constructor = secondConstructor;
+
+var o = new secondConstructor();
+o.arbitraryProperty = 'is enumerable';
+
+o.propertyIsEnumerable('arbitraryProperty'); // true を返す
+o.propertyIsEnumerable('method'); // true を返す
+o.propertyIsEnumerable('property'); // false を返す
+
+o.property = 'is enumerable';
+
+o.propertyIsEnumerable('property'); // true を返す
+
+// これらはすべて false を返します。これは、 (最後の 2 つは for-in で
+// 反復処理可能であるにもかかわらず) propertyIsEnumerable が考慮しない
+// プロトタイプであるためです。
+o.propertyIsEnumerable('prototype'); // false を返す (as of JS 1.8.1/FF3.6)
+o.propertyIsEnumerable('constructor'); // false を返す
+o.propertyIsEnumerable('firstMethod'); // false を返す
+```
+
+## Specifications
+
+{{Specifications}}
+
+## Browser compatibility
+
+{{Compat}}
+
+## See also
+
+- [列挙可能性とプロパティの所有権](/ja/docs/Web/JavaScript/Enumerability_and_ownership_of_properties)
+- {{jsxref("Statements/for...in", "for...in")}}
+- {{jsxref("Object.keys()")}}
+- {{jsxref("Object.defineProperty()")}}
--
cgit v1.2.3-54-g00ecf
From e2b6fc2fd48db513519e1db978dc043a01a43b58 Mon Sep 17 00:00:00 2001
From: Masahiro FUJIMOTO Reflect.construct() メソッドは {{jsxref("Operators/new", "new")}} 演算子のように、ただし関数として動作します。これは new target(...args) の呼び出しと同等です。このメソッドはオプションを追加することで、別なプロトタイプを指定することができます。構文
-
-Reflect.construct(target, argumentsList[, newTarget])
-
-
-引数
-
-
-
-
-targetargumentsListtarget の呼び出しの引数を指定する。newTarget {{optional_inline}}new.target も参照してください。 newTarget が存在しない場合は、既定値は target になります。返値
-
-target (または、もしあれば newTarget) の新しいインスタンスで、 target に argumentsList を渡してコンストラクターとして呼び出すことで初期化します。例外
-
-target または newTarget がコンストラクターではない場合。解説
-
-Reflect.construct() によって、可変長引数を指定してコンストラクターを呼び出すことができます。 (これは new 演算子 を組み合わせて使用することでも可能です。)let obj = new Foo(...args)
-let obj = Reflect.construct(Foo, args)
-
-
-
-
-Reflect.construct() と Object.create()Reflect が導入される前は、オブジェクトを構築するのにコンストラクターとプロトタイプの任意の組み合わせで {{jsxref("Object.create()")}} を使用して構築することができました。function OneClass() {
- this.name = 'one'
-}
-
-function OtherClass() {
- this.name = 'other'
-}
-
-// この呼び出しは、
-let obj1 = Reflect.construct(OneClass, args, OtherClass)
-
-// ...これと同じ結果をもたらします。
-let obj2 = Object.create(OtherClass.prototype)
-OneClass.apply(obj2, args)
-
-console.log(obj1.name) // 'one'
-console.log(obj2.name) // 'one'
-
-console.log(obj1 instanceof OneClass) // false
-console.log(obj2 instanceof OneClass) // false
-
-console.log(obj1 instanceof OtherClass) // true
-console.log(obj2 instanceof OtherClass) // true
-
-
-Object.create() と {{jsxref("Function.prototype.apply()")}} を使用する場合、 new.target 演算子はコンストラクター内で undefined を返します。これは、 new 演算子を用いないためです。Reflect.construct() を呼び出す場合は、 new.target 演算子は、提供されていれば newTarget を指し、そうでなければ target を指します。function OneClass() {
- console.log('OneClass')
- console.log(new.target)
-}
-function OtherClass() {
- console.log('OtherClass')
- console.log(new.target)
-}
-
-let obj1 = Reflect.construct(OneClass, args)
-// Output:
-// OneClass
-// function OneClass { ... }
-
-let obj2 = Reflect.construct(OneClass, args, OtherClass)
-// Output:
-// OneClass
-// function OtherClass { ... }
-
-let obj3 = Object.create(OtherClass.prototype);
-OneClass.apply(obj3, args)
-// Output:
-// OneClass
-// undefined
-
-
-例
-
-
-
-Reflect.construct() の使用let d = Reflect.construct(Date, [1776, 6, 4])
-d instanceof Date // true
-d.getFullYear() // 1776
-
-
-仕様書
-
-
-
-
-
-
-
-
-
- 仕様書
-
-
-
-{{SpecName('ESDraft', '#sec-reflect.construct', 'Reflect.construct')}}
- ブラウザーの互換性
-
-関連情報
-
-
-
diff --git a/files/ja/web/javascript/reference/global_objects/reflect/construct/index.md b/files/ja/web/javascript/reference/global_objects/reflect/construct/index.md
new file mode 100644
index 0000000000..5cc425fa6d
--- /dev/null
+++ b/files/ja/web/javascript/reference/global_objects/reflect/construct/index.md
@@ -0,0 +1,148 @@
+---
+title: Reflect.construct()
+slug: Web/JavaScript/Reference/Global_Objects/Reflect/construct
+tags:
+ - ECMAScript 2015
+ - JavaScript
+ - Method
+ - Reference
+ - Reflect
+ - Polyfill
+browser-compat: javascript.builtins.Reflect.construct
+translation_of: Web/JavaScript/Reference/Global_Objects/Reflect/construct
+---
+{{JSRef}}
+
+静的な **`Reflect.construct()`** メソッドは {{jsxref("Operators/new", "new")}} 演算子のように、ただし関数として動作します。これは `new target(...args)` の呼び出しと同等です。このメソッドはオプションを追加することで、別なプロトタイプを指定することができます。
+
+{{EmbedInteractiveExample("pages/js/reflect-construct.html", "taller")}}
+
+## 構文
+
+```js
+Reflect.construct(target, argumentsList)
+Reflect.construct(target, argumentsList, newTarget)
+```
+
+### 引数
+
+- `target`
+ - : 呼び出し対象の関数。
+- `argumentsList`
+ - : 配列風オブジェクトで、 `target` の呼び出しの引数を指定する。
+- `newTarget` {{optional_inline}}
+ - : プロトタイプを使用するコンストラクター。 [`new.target`](/ja/docs/Web/JavaScript/Reference/Operators/new.target) も参照してください。 `newTarget` が存在しない場合は、既定値は `target` になります。
+
+### 返値
+
+`target` (または、もしあれば `newTarget`) の新しいインスタンスで、 `target` に `argumentsList` を渡してコンストラクターとして呼び出すことで初期化します。
+
+### 例外
+
+{{jsxref("TypeError")}}: `target` または `newTarget` がコンストラクターではない場合。
+
+## 解説
+
+`Reflect.construct()` によって、可変長引数を指定してコンストラクターを呼び出すことができます。 (これは[スプレッド構文](/ja/docs/Web/JavaScript/Reference/Operators/Spread_syntax)と[`new` 演算子](/ja/docs/Web/JavaScript/Reference/Operators/new)を組み合わせて使用することでも可能です。)
+
+```js
+let obj = new Foo(...args)
+let obj = Reflect.construct(Foo, args)
+```
+
+### `Reflect.construct()` と `Object.create()`
+
+`Reflect` が導入される前は、オブジェクトを構築するのにコンストラクターとプロトタイプの任意の組み合わせで {{jsxref("Object.create()")}} を使用して構築することができました。
+
+ function OneClass() {
+ this.name = 'one'
+ }
+
+ function OtherClass() {
+ this.name = 'other'
+ }
+
+ // Calling this:
+ let obj1 = Reflect.construct(OneClass, args, OtherClass)
+
+ // ...has the same result as this:
+ let obj2 = Object.create(OtherClass.prototype)
+ OneClass.apply(obj2, args)
+
+ console.log(obj1.name) // 'one'
+ console.log(obj2.name) // 'one'
+
+ console.log(obj1 instanceof OneClass) // false
+ console.log(obj2 instanceof OneClass) // false
+
+ console.log(obj1 instanceof OtherClass) // true
+ console.log(obj2 instanceof OtherClass) // true
+
+ //Another example to demonstrate below:
+
+ function func1(a, b, c, d) {
+ console.log(arguments[3]);
+ }
+
+ function func2(d, e, f, g) {
+ console.log(arguments[3]);
+ }
+
+ let obj1 = Reflect.construct(func1, ['I', 'Love', 'my', 'India'])
+ obj1
+
+この 2 つの手法の最終結果は同じですが、その過程に重要な違いがあります。 `Object.create()` と {{jsxref("Function.prototype.apply()")}} を使用する場合、 `new.target` 演算子はコンストラクター内で `undefined` を返します。これは、 `new` 演算子を用いないためです。
+
+一方、 `Reflect.construct()` を呼び出す場合は、 `new.target` 演算子は、提供されていれば `newTarget` を指し、そうでなければ `target` を指します。
+
+```js
+function OneClass() {
+ console.log('OneClass')
+ console.log(new.target)
+}
+function OtherClass() {
+ console.log('OtherClass')
+ console.log(new.target)
+}
+
+let obj1 = Reflect.construct(OneClass, args)
+// Output:
+// OneClass
+// function OneClass { ... }
+
+let obj2 = Reflect.construct(OneClass, args, OtherClass)
+// Output:
+// OneClass
+// function OtherClass { ... }
+
+let obj3 = Object.create(OtherClass.prototype);
+OneClass.apply(obj3, args)
+// Output:
+// OneClass
+// undefined
+```
+
+## 例
+
+### `Reflect.construct()` の使用
+
+```js
+let d = Reflect.construct(Date, [1776, 6, 4])
+d instanceof Date // true
+d.getFullYear() // 1776
+```
+
+## 仕様書
+
+{{Specifications}}
+
+## ブラウザーの互換性
+
+{{Compat}}
+
+## 関連情報
+
+- `Reflect.construct` のポリフィルが [`core-js`](https://github.com/zloirock/core-js#ecmascript-reflect) にあります
+- {{jsxref("Reflect")}}
+- {{jsxref("Operators/new", "new")}}
+- [`new.target`](/ja/docs/Web/JavaScript/Reference/Operators/new.target)
--
cgit v1.2.3-54-g00ecf
From 93b4dd6b26fbce6f5e0c88f102da5b38e0289200 Mon Sep 17 00:00:00 2001
From: Masahiro FUJIMOTO new.targetfunction* キーワードは、式の中でジェネレーター関数を定義するために使用することができます。構文
-
-function* [name]([param1[, param2[, ..., paramN]]]) {
- statements
-}
-
-引数
-
-
-
-
-name {{optional_inline}}paramN {{optional_inline}}statements解説
-
-function* 式は {{jsxref('Statements/function*', 'function* 文', "", 1)}}ととてもよく似ており、構文もほとんど同じです。function* 式と function* 文の主な違いは、function* 式で無名ジェネレーター関数を生成するには関数名が省略できる点です。詳細は {{jsxref("Functions", "functions")}} をご覧ください。例
-
-function* を使用する
-
-x に割り当てます。関数は引数の二乗をもたらします:let x = function*(y) {
- yield y * y;
-};
-
-
-仕様
-
-
-
-
-
-
-
-
-
- 仕様書
-
-
-
-{{SpecName('ESDraft', '#sec-generator-function-definitions', 'function*')}}
- ブラウザーの互換性
-
-関連情報
-
-
-
diff --git a/files/ja/web/javascript/reference/operators/function_star_/index.md b/files/ja/web/javascript/reference/operators/function_star_/index.md
new file mode 100644
index 0000000000..19a8d1404b
--- /dev/null
+++ b/files/ja/web/javascript/reference/operators/function_star_/index.md
@@ -0,0 +1,73 @@
+---
+title: function* 式
+slug: Web/JavaScript/Reference/Operators/function*
+tags:
+ - ECMAScript 2015
+ - Function
+ - Iterator
+ - JavaScript
+ - Language feature
+ - Operator
+ - Primary Expression
+browser-compat: javascript.operators.generator_function
+translation_of: Web/JavaScript/Reference/Operators/function*
+---
+{{jsSidebar("Operators")}}
toString() メソッドは、指定された配列とその要素を表す文字列を返します。
arr.toString()- -
配列の要素を表す文字列です。
- -{{jsxref("Array")}} オブジェクトは {{jsxref("Object")}} の toString メソッドを上書きしています。Array オブジェクトでは、toString メソッドは配列をつないで、配列のそれぞれの要素がカンマで区切られた 1 つの文字列を返します。
配列が文字列値として表される必要がある場合や、配列が文字列の結合として参照される時、JavaScript は toString メソッドを自動的に呼び出します。
JavaScript 1.8.5 (Firefox 4)以降、および ECMAScript 第 5 版では、toString() メソッドは一般化されており、すべてのオブジェクトで使用可能となっています。{{jsxref("Object.prototype.toString()")}} が呼び出され、その結果の値が返されます。
const array1 = [1, 2, 'a', '1a']; - -console.log(array1.toString()); -// expected output: "1,2,a,1a" -- -
| 仕様書 | -
|---|
| {{SpecName('ESDraft', '#sec-array.prototype.tostring', 'Array.prototype.toString')}} | -
{{Compat("javascript.builtins.Array.toString")}}
-グローバルプロパティ Infinity は無限大を表す数値です。
{{js_property_attributes(0,0,0)}}
- -Infinity はグローバルオブジェクトのプロパティです。言い換えればグローバルスコープ内の変数です。
Infinity の初期値は {{jsxref("Number.POSITIVE_INFINITY")}} です。Infinity という値 (正の無限大) は他のあらゆる数より大きい数です。
この値は数学的に無限大のように振る舞います。詳しくは {{jsxref("Number.POSITIVE_INFINITY")}} を参照してください。
- -ECMAScript 5 の仕様では、Infinity は読み取り専用です (JavaScript 1.8.5 / Firefox 4 にて実装)。
console.log(Infinity ); /* Infinity */ -console.log(Infinity + 1 ); /* Infinity */ -console.log(Math.pow(10, 1000)); /* Infinity */ -console.log(Math.log(0) ); /* -Infinity */ -console.log(1 / Infinity ); /* 0 */ -console.log(1 / 0 ); /* Infinity */ -- -
| 仕様書 | -
|---|
| {{SpecName('ESDraft', '#sec-value-properties-of-the-global-object-infinity', 'Infinity')}} | -
{{Compat("javascript.builtins.parseInt")}}
- -Intl.Locale.prototype.maximize() メソッドは、既存の値に基づいてロケールの言語、表記法、地域の最も可能性の近い値を取得します。
locale.maximize()
-
-{{jsxref("Locale", "Locale")}} インスタンスで、 baseName プロパティが、 Add Likely Subtags アルゴリズムが {{jsxref("Locale/baseName", "locale.baseName")}} に対して実行された結果になったものを返します。
不完全な言語識別子をもとに、最も可能性の高いロケール言語識別子サブタグを識別できると便利な場合があります。 Add Likely Subtags アルゴリズムはこの機能を提供してくれます。例えば、言語識別子 "en" が与えられた場合、アルゴリズムは "en-Latn-US" を返すことになります。英語はラテン文字でしか書けませんし、世界最大の英語圏の国であるアメリカで使われている可能性が高いからです。この機能は、 maximize() メソッドを介して JavaScript プログラマーに提供されています。 maximize() は、言語識別子を構成する主要なサブタグのうち言語サブ、表記法、地域の各サブタグにのみ影響を与えます。ロケール識別子の "-u" の後にあるその他のサブタグは拡張サブタグと呼ばれ、 maximize() メソッドの影響を受けません。これらのサブタグの例としては、 {{jsxref("Locale/hourCycle", "Locale.hourCycle")}}, {{jsxref("Locale/calendar", "Locale.calendar")}}, {{jsxref("Locale/numeric", "Locale.numeric")}} などがあります。
let myLocale = new Intl.Locale("ja", {hourCycle: "h24", calendar: "gregory"});
-console.log(myLocale.baseName); // "ja" と表示
-console.log(myLocale.toString()); // "ja-u-ca-gregory-hc-h24" と表示
-let myLocMaximized = myLocale.maximize();
-
-// "ja-Jpan-JP"。 "Jpan" と "JP" タグが追加されます。
-// これは、日本語が主に漢字かな交じり文 (Jpan) で書かれ、また主に日本 (JP) で話されているためです。
-console.log(myLocMaximized.baseName);
-
-// "ja-Jpan-JP-u-ca-gregory-hc-h24" と表示します。
-// なお、拡張タグ ("-u" 以降) はそのまま残ります。
-console.log(myLocMaximized.toString());
-
-| 仕様書 | -
|---|
| {{SpecName('ES Int Draft', '#sec-Intl.Locale.prototype.maximize')}} | -
{{Compat("javascript.builtins.Intl.Locale.maximize")}}
-Intl.Locale.prototype.minimize() メソッドは、 {{jsxref("Locale/maximize", "Locale.maximize()")}} を呼び出したことで追加されるロケールに関する情報を削除しようとします。
locale.minimize()
-
-{{jsxref("Locale", "Locale")}} インスタンスで、 baseName プロパティが、 Remove Likely Subtags アルゴリズムが locale.baseName に対して実行された結果になったものを返します。
このメソッドは {{jsxref("Locale/maximize", "maximize()")}} の逆の処理を行い、ロケールの言語識別子 (基本的には baseName の内容) から言語、文字体系、地域のサブタグをすべて削除します。これは、言語識別子の中に余分なサブタグがある場合に便利です。例えば "en-Latn" は "en" に簡略化できます。英語では "Latn" が書き言葉に使われる唯一の文字体系だからです。 minimize() が影響を与えるのは、言語識別子を構成する主要なサブタグである言語、文字体系、地域の各サブタグのみです。ロケール識別子の "-u" の後にあるその他のサブタグは拡張サブタグと呼ばれ、 minimize() メソッドの影響を受けません。これらのサブタグの例としては、 {{jsxref("Locale/hourCycle", "Locale.hourCycle")}}, {{jsxref("Locale/calendar", "Locale.calendar")}}, {{jsxref("Locale/numeric", "Locale.numeric")}} などがあります。
let myLocale = new Intl.Locale("ja-Jpan-JP", {hourCycle: "h24", calendar: "gregory"});
-console.log(myLocale.baseName); // "ja-Jpan-JP" と表示
-console.log(myLocale.toString()); // "ja-Jpan-JP-u-ca-gregory-hc-h24" と表示
-
-let myLocMinimized = myLocale.minimize();
-
-// "ja" のみを表示します。日本語は主に漢字かな交じり文 (Jpan) で
-// 表記され、またほとんど日本で話されているためです。
-console.log(myLocMinimized.baseName);
-
-// "ja-u-ca-gregory-hc-h24" と表示します。
-// なお、拡張タグ ("-u" 以降) はそのまま残ります。
-console.log(myLocMinimized.toString());
-
-| 仕様書 | -
|---|
| {{SpecName('ES Int Draft', '#sec-Intl.Locale.prototype.minimize')}} | -
{{Compat("javascript.builtins.Intl.Locale.minimize")}}
-Intl.Locale.prototype.toString() は、このロケールの完全なロケール識別子文字列を返します。
locale.toString()
-
-このロケールの Unicode ロケール識別子文字列です。
- -Locale オブジェクトは、概念的な Unicode ロケール識別子を JavaScript で表現したものです。特定のロケールに関する情報 (言語、文字体系、カレンダーの種類など) を、ロケール識別子文字列で符号化することができます。これらのロケール識別子をより簡単に扱えるようにするために、 Locale オブジェクトが JavaScript に導入されました。 Locale オブジェクトの toString メソッドをコールすると、そのロケールの識別子文字列を返します。 toString メソッドを使用すると、 Locale のインスタンスが既存の Intl のコンストラクターへの引数ととして JSON におけるシリアライズにおいて、またはその他のコンテキストで正確な文字列表現が有用な場合に提供することができます。
let myLocale = new Intl.Locale("ja-Jpan-JP", {hourCycle: "h24", calendar: "gregory"});
-console.log(myLocale.baseName); // "ja-Jpan-JP" と表示
-console.log(myLocale.toString()); // "ja-Jpan-JP-u-ca-gregory-hc-h24" と表示
-
-
-| 仕様書 | -
|---|
| {{SpecName('ES Int Draft', '#sec-Intl.Locale.prototype.toString')}} | -
{{Compat("javascript.builtins.Intl.Locale.toString")}}
-Date.parse() の使用Date.parse() の使用以下の呼び出しはすべて 1546300800000 を返します。最初のものは ES5 によれば UTC 時刻を意味し、それ以外は ISO 日付仕様 (Z および +00:00) に従って UTC をタイムゾーンを指定しています。
注: {{jsxref("Statements/async_function", "非同期関数", "", 1)}}が AsyncFunction コンストラクターによって生成された場合、生成コンテキストのクロージャは生成されません。常にグローバルスコープに生成されます。
実行すると、ローカル変数とグローバルグローバル変数にのみアクセスでき、 AsyncFunction コンストラクターが呼び出されたスコープの変数にはアクセスできません。
実行すると、ローカル変数とグローバル変数にのみアクセスでき、 AsyncFunction コンストラクターが呼び出されたスコープの変数にはアクセスできません。
これは、非同期関数式のコードで {{jsxref("Global_Objects/eval", "eval")}} を使用した場合とは異なります。
定数 (const) は、let キーワードを使って定義する変数と同じ、ブロックスコープを持ちます。定数の値は、再代入による変更はできず、再宣言もできません。
const name1 = value1 [, name2 = value2 [, ... [, nameN = valueN]]];- -
nameNvalueN分割代入構文は、変数の宣言にも使用できます。
- -const { bar } = foo; // where foo = { bar:10, baz:12 };
-/* これは、値が 10 の 'bar' という名前の変数を作成します。*/
-
-この宣言は、宣言された場所に応じて、グローバルまたはブロック内にローカルなスコープを持った定数を作成します。グローバルな定数は {{jsxref("Statements/var", "var")}} 変数とは異なり、{{domxref("window")}} オブジェクトのプロパティにはなりません。
- -定数には初期化子が必要です。その値は、宣言されたのと同じ文の中で指定しなければなりません。(後から変更できないことを考えると、これは理にかなっています)
- -const 宣言は、値への読み取り専用の参照を作ります。これは、定数に保持されている値は不変ではなく、その変数の識別子が再代入できないということです。たとえば、定数の中身がオブジェクトの場合、オブジェクトの内容(プロパティなど)は変更可能です。
「一時的なデッドゾーン」に関する考慮事項はすべて、{{jsxref("Statements/let", "let")}} と const の両方に適用されます。
定数は、同じスコープ内の関数や変数と同じ名前にすることはできません。
- -定数は大文字または小文字で宣言することができますが、すべて大文字で宣言するのが慣例です。
- -// MY_FAV を定数として定義して、その値を 7 にします。
-const MY_FAV = 7;
-
-// これはエラーを投げます。
-// Uncaught TypeError: Assignment to constant variable.
-MY_FAV = 20;
-
-// MY_FAV は 7 です。
-console.log('my favorite number is: ' + MY_FAV);
-
-// 定数を再宣言しようとするとエラーを投げます。
-// Uncaught SyntaxError: Identifier 'MY_FAV' has already been declared
-const MY_FAV = 20;
-
-// MY_FAV という名前は上記の定数のために予約されているので、これも失敗します。
-var MY_FAV = 20;
-
-// これもエラーを投げます。
-let MY_FAV = 20;
-
-
-
-ブロックスコープの性質に注意することが重要です。
- -if (MY_FAV === 7) {
- // これは問題なく、ブロックスコープの MY_FAV 変数を作成します。
- // (ブロックスコープの変数を宣言する let も問題なく機能します)
- let MY_FAV = 20;
-
- // MY_FAV は現在 20 です。
- console.log('my favorite number is ' + MY_FAV);
-
- // これはグローバルコンテキストに巻き上げられ、エラーを投げます。
- var MY_FAV = 20;
-}
-
-// MY_FAV は 7 のままです。
-console.log('my favorite number is ' + MY_FAV);
-
-
-// エラーが投げられます。 -// Uncaught SyntaxError: Missing initializer in const declaration - -const FOO; -- -
定数はオブジェクトや配列に対しても動作します。
- -const MY_OBJECT = {'key': 'value'};
-
-// オブジェクトの上書きはエラーを投げます。
-// Uncaught TypeError: Assignment to constant variable.
-MY_OBJECT = {'OTHER_KEY': 'value'};
-
-// しかしながら、オブジェクトのキーは保護されていないので、
-// 次の文は問題なく実行されます。
-MY_OBJECT.key = 'otherValue'; // Object.freeze() を使用すればオブジェクトを不変にできます。
-
-// 配列も同じです。
-const MY_ARRAY = [];
-// 配列にアイテムをプッシュすることができます。
-MY_ARRAY.push('A'); // ["A"]
-// しかしながら、新しい配列を変数に代入するとエラーを投げます。
-// Uncaught TypeError: Assignment to constant variable.
-MY_ARRAY = ['B'];
-
-| 仕様書 | -
|---|
| {{SpecName('ESDraft', '#sec-let-and-const-declarations', 'Let and Const Declarations')}} | -
{{Compat("javascript.statements.const")}}
- -WebAssembly.validate() 関数は WebAssembly バイナリコードを含む 型付き配列 をバリデーションし、バイト列が有効な wasm モジュール (true) か、そうでないか (false) を返します。
WebAssembly.validate(bufferSource);- -
有効な wasm モジュール (true) か、そうでないか (false) を示す boolean 値。
bufferSource が 型付き配列 か ArrayBuffer でない場合、{{jsxref("TypeError")}} がスローされます。
以下の例 (validate.html の ソースコード と 動作例 をご確認ください) は .wasm モジュールをフェッチして型付き配列に変換します。次に、 validate() メソッドを使用してモジュールが有効かどうかをチェックします。
fetch('simple.wasm').then(response =>
- response.arrayBuffer()
-).then(function(bytes) {
- var valid = WebAssembly.validate(bytes);
- console.log("The given bytes are "
- + (valid ? "" : "not ") + "a valid wasm module");
-});
-
-
-| 仕様 | -策定状況 | -コメント | -
|---|---|---|
| {{SpecName('WebAssembly JS', '#webassemblyvalidate', 'validate()')}} | -{{Spec2('WebAssembly JS')}} | -初回ドラフト定義。 | -
WebAssembly.instantiateStreaming() 関数はソースのストリームから直接 WebAssembly モジュールをコンパイルしてインスタンス化します。
Promise<ResultObject> WebAssembly.instantiateStreaming(source, importObject);- -
Instance にインポートされる値を持つオブジェクト。モジュール内で宣言されたインポートそれぞれに対応するプロパティが存在する必要があります。そうでない場合、{{jsxref("WebAssembly.LinkError")}} がスローされます。解決時に次の2つのフィールドを持つ ResultObject を渡す Promise:
module: コンパイルされた {{jsxref("WebAssembly.Module")}} オブジェクト。この Module は再度インスタンス化することや、postMessage() 経由で共有したり、IndexedDBにキャッシュすることができます。instance: 全ての エクスポートされたWebAssembly関数 を含む {{jsxref("WebAssembly.Instance")}} オブジェクト。次の例 (Github上のデモ instantiate-streaming.html と、 動作例 を参照してください) では、ソースから .wasm モジュールを直接コンパイルしてインスタンス化しています。プロミスは ResultObject で fulfill されます。instantiateStreaming() 関数は {{domxref("Response")}} オブジェクトを渡すプロミスを受け取るので、直接 {{domxref("WindowOrWorkerGlobalScope.fetch()")}} 呼び出し結果を渡すことができます。
var importObject = { imports: { imported_func: arg => console.log(arg) } };
-
-WebAssembly.instantiateStreaming(fetch('simple.wasm'), importObject)
-.then(obj => obj.instance.exports.exported_func());
-
-最後に ResultObject が持つ instance メンバーにアクセスして、エクスポートされた関数を実行しています。
| Specification | -Status | -Comment | -
|---|---|---|
| {{SpecName('WebAssembly Embedding', '#webassemblyinstantiatestreaming', 'instantiateStreaming()')}} | -{{Spec2('WebAssembly Embedding')}} | -初回ドラフト定義 | -
{{Compat("javascript.builtins.WebAssembly.instantiateStreaming")}}
-{{JSSidebar("Objects")}}
- -本章では JavaScript の標準組込みオブジェクトについて、それらのメソッドやプロパティと共にすべて文書化しています。
- -ここでいう「グローバルオブジェクト」 (または標準組込みオブジェクト) という用語をグローバルオブジェクトと混同しないでください。ここで、『グローバルオブジェクト』はグローバルスコープにあるオブジェクトを指します。 (訳注: 日本語では複数形や the による区別ができないため、ここでは後者の the global object を『グローバルオブジェクト』と表記して区別します。)
- -後者の『グローバルオブジェクト』自体は、グローバルスコープ中で {{JSxRef("Operators/this", "this")}} 演算子を使ってアクセスすることができます。実際、グローバルスコープは『グローバルオブジェクト』 (継承されたプロパティがあればそれらも含む) のプロパティから構成されています。
- -グローバルスコープ内のその他のオブジェクトは、ユーザースクリプトによって作られるか、あるいはホストアプリによって提供されます。ブラウザー上で提供されている利用可能なオブジェクトについては、API リファレンス で文書化されています。
- - - -DOM と中核の JavaScript との違いについての詳しい情報は、JavaScript 技術概説をご覧ください。
- -これらのグローバルプロパティは、単なる値を返します。これらはプロパティもメソッドも持ちません。
- -これらのグローバル関数 (オブジェクト上ではなくグローバルに呼ばれる関数) は、呼び出し元に直接結果を返します。
- -これらは、他のすべてのオブジェクトの基礎となる、主要な基本オブジェクトです。これらには、一般的なオブジェクト、関数、そしてエラーを表すオブジェクトが含まれます。
- -エラーオブジェクトは基本オブジェクトの特殊型です。これらのオブジェクトには、基本的な {{JSxRef("Error")}} 型の他に、いくつかの特殊なエラー型があります。
- -これらは数、日付、数学計算を表す基本的なオブジェクトです。
- -これらのオブジェクトは、文字列表現および文字列操作をサポートします。
- -これらのオブジェクトは、インデックス値で順序付けされたデータのコレクションを表します。これには、(型付けされた) 配列や配列に似た構造体も含まれます。
- -これらのオブジェクトは、キーを使ったコレクションを表します。これらは、挿入順に反復可能な要素で構成されています。
- -これらのオブジェクトは、構造化データバッファおよび JavaScript Object Notation (JSON) を用いて書かれたデータを表現、操作します。
- -制御抽象化オブジェクトは、特に非同期のコードを構造化するために役立ちます (例えば深く入り組んだコールバックを使用しないなど)。
- -ECMAScript コアに追加された言語の扱いに影響する機能です。
- -