From 4e2c0c94158b7e8918f185abc916e98dc83c9d16 Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Sun, 17 Sep 2023 14:51:29 +0900 Subject: [PATCH 01/43] =?UTF-8?q?2023/04/08=20=E6=99=82=E7=82=B9=E3=81=AE?= =?UTF-8?q?=E8=8B=B1=E8=AA=9E=E7=89=88=E3=81=AB=E5=90=8C=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- files/ja/web/api/window/opener/index.md | 37 +++++++++++++------------ 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/files/ja/web/api/window/opener/index.md b/files/ja/web/api/window/opener/index.md index c433b820c51ac8..e93c2672b4c3fd 100644 --- a/files/ja/web/api/window/opener/index.md +++ b/files/ja/web/api/window/opener/index.md @@ -1,30 +1,33 @@ --- -title: window.opener +title: "Window: opener プロパティ" +short-title: opener slug: Web/API/Window/opener +l10n: + sourceCommit: cc070123f72376faec06e36622c4fc723a75325f --- -{{ApiRef}} +{{APIRef("HTML DOM")}} -## 概要 +{{domxref("Window")}} インターフェイスの **`opener`** プロパティは、 {{domxref("Window.open", "open()")}} によって、または [`target`](/ja/docs/Web/HTML/Element/a#target) 属性の付いたリンクの操作によって開かれたウィンドウを開いたウィンドウへの参照を返します。 -現在のウィンドウを開いたウィンドウへの参照を返します。 +言い換えれば、ウィンドウ `A` がウィンドウ `B` を開いた場合、 `B.opener` は `A` を返します。 -## 構文 +## 値 -``` -objRef = window.opener; -``` +{{domxref("Window")}} 風のオブジェクトで、({{domxref("window.open()")}} を使用するか、または [`target`](/ja/docs/Web/HTML/Element/a#target) 属性が設定されたリンクによって)現在のウィンドウを開いたウィンドウ(オープナー)を参照します。このウィンドウが他のウィンドウにリンクされたり作成されたりして開かれたものでない場合は [`null`](/ja/docs/Web/JavaScript/Reference/Operators/null) を返します。 -## 例 +オープナーが現在のページと同じオリジン上にない場合、オープナーオブジェクトの機能は制限されます。例えば、ウィンドウオブジェクトの変数と関数はアクセスすることができません。しかし、オープナーウィンドウのナビゲーションは利用可能です。これは、開かれたページが元のタブやウィンドウで URL を開くためのものであることを意味しています。場合によっては、これによりフィッシング攻撃が可能であり、元のウィンドウで開かれた信頼できるページが、新しく開かれたページによってフィッシングページに置き換えられてしまいます。 -```js -if (window.opener != indexWin) { - referToTop(window.opener); -} -``` +以下の場合、ブラウザーは `window.opener` を生成せず、 [`null`](/ja/docs/Web/JavaScript/Reference/Operators/null) のままにします。 -## 注記 +- リンクに [`rel=noopener`](/ja/docs/Web/HTML/Attributes/rel#noopener) を指定するか、 `noopener` を {{domxref("Window.open", "windowFeatures")}} 引数に渡すことで、オープナーを消すことができます。 +- [`target`](/ja/docs/Web/HTML/Element/a#target) が `_blank` であるリンクによって開かれたウィンドウは、明示的に [`rel=opener`](/ja/docs/Web/HTML/Attributes/rel#opener) を要求しない限り、 `opener` になることはありません。 +- 値が `same-origin` である {{HTTPHeader("Cross-Origin-Opener-Policy")}} ヘッダーがあると、 `opener` を設定することができません。新しいウィンドウは異なる閲覧コンテキストで読み込まれるので、開くためのウィンドウを参照することはありません。 -別のウィンドウから({{domxref("Window.open")}} を使用して)開かれたウィンドウは、主ウィンドウへの参照を `window.opener` として保持します。現在のウィンドウが別のウィンドウから開かれたものではない場合、このメソッドは NULL を返します。 +## 仕様書 -Windows Phone ブラウザは window\.opener をサポートしていません(Edge 25.10586.36.0 でテストしました)。opener が異なるセキュリティゾーンにある場合、IE でもサポートされていません。 +{{Specifications}} + +## ブラウザーの互換性 + +{{Compat}} From df06c0829fa60d1d2aa5b79655c1d6a6a300a96c Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Sun, 17 Sep 2023 23:47:10 +0900 Subject: [PATCH 02/43] =?UTF-8?q?2023/06/19=20=E6=99=82=E7=82=B9=E3=81=AE?= =?UTF-8?q?=E8=8B=B1=E8=AA=9E=E7=89=88=E3=81=AB=E5=90=8C=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reference/global_objects/set/index.md | 176 +++++++++++------- 1 file changed, 110 insertions(+), 66 deletions(-) diff --git a/files/ja/web/javascript/reference/global_objects/set/index.md b/files/ja/web/javascript/reference/global_objects/set/index.md index 9925df21f41511..26b24045675657 100644 --- a/files/ja/web/javascript/reference/global_objects/set/index.md +++ b/files/ja/web/javascript/reference/global_objects/set/index.md @@ -1,6 +1,8 @@ --- title: Set slug: Web/JavaScript/Reference/Global_Objects/Set +l10n: + sourceCommit: ef30b142b03870b8ca70919f1a65a96736898c3a --- {{JSRef}} @@ -11,15 +13,51 @@ slug: Web/JavaScript/Reference/Global_Objects/Set `Set` オブジェクトは値のコレクションです。 `Set` に**重複する値は格納出来ません**。 `Set` 内の値はコレクション内で一意になります。 `Set` はその要素について挿入順で反復処理を行うことができます。挿入順は、各要素が [`add`](/ja/docs/Web/JavaScript/Reference/Global_Objects/Set/add) メソッドによって正常に `Set` に挿入された順番に対応します。 -仕様書では `Set` の実装について「平均アクセス時間がコレクション内の要素数に対して線形以下」であることが要求されています。したがって、計算量が O(N) よりも優れていれば、内部的にはハッシュテーブル( O(1) ルックアップ)、探索木( O(log(N) ルックアップ)、その他のデータ構造として表現することが可能です。 +仕様書では `Set` の実装について「平均アクセス時間がコレクション内の要素数に対して線形探索以下」であることが要求されています。したがって、計算量が O(N) よりも優れている限り、内部的にはハッシュ表(ルックアップは O(1))、探索木(ルックアップは O(log(N)))、または他のデータ構造として表すことができます。 ### 値の等価性 -値の等値性は、[Same-value-zero](/ja/docs/Web/JavaScript/Equality_comparisons_and_sameness#同値ゼロ等価性) アルゴリズムに基づいています。(以前は [Same-value](/ja/docs/Web/JavaScript/Equality_comparisons_and_sameness#object.is_を使用した同値等価性) を使用しており、0 と -0 は異なるものとして扱われていました。詳しくは[ブラウザーの互換性](#ブラウザーの互換性)の "Key equality for -0 and 0" を参照してください。) つまり、 `NaN` は `NaN` と同じとみなされ (例え `NaN !== NaN` であっても)、それ以外の値は `===` 演算子の挙動に従って等しいとみなされます。 +値の等値性は、 [SameValueZero](/ja/docs/Web/JavaScript/Equality_comparisons_and_sameness#同値ゼロ等価性) アルゴリズムに基づいています。(以前は [SameValue](/ja/docs/Web/JavaScript/Equality_comparisons_and_sameness#object.is_を使用した同値等価性) を使用しており、0 と -0 は異なるものとして扱われていました。詳しくは[ブラウザーの互換性](#ブラウザーの互換性)の "Key equality for -0 and 0" を参照してください。)つまり、 {{jsxref("NaN")}} は `NaN` と同じとみなされ(例え `NaN !== NaN` であっても)、それ以外の値は `===` 演算子の挙動に従って等しいとみなされます。 -### 性能 +### パフォーマンス -`Set` の [`has`](/ja/docs/Web/JavaScript/Reference/Global_Objects/Set/has) メソッドは、値が `Set` オブジェクト内にあるかどうかをチェックします。これは、以前に `Set` オブジェクトに追加された要素のほとんどを確認するよりも平均すると高速なアプローチを使用します。特に、 `Array` オブジェクトの `length` が `Set` オブジェクトの `size` と等しい場合、平均して [`Array.prototype.includes`](/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/includes) メソッドより速くなります。 +[`has`](/ja/docs/Web/JavaScript/Reference/Global_Objects/Set/has) メソッドは、値が `Set` 内にあるかどうかをチェックします。これは、以前に `Set` に追加された要素のほとんどを確認するよりも平均すると高速なアプローチを使用します。特に、 `Array` オブジェクトの `length` が `Set` オブジェクトの `size` と等しい場合、平均して [`Array.prototype.includes`](/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/includes) メソッドより速くなります。 + +### Set 風のブラウザー API + +ブラウザーの **`Set` 風オブジェクト**(または「集合風オブジェクト」)とは、[ウェブ API](/ja/docs/Web/API) の中で多くの点で `Set` のように動作するインターフェイスです。 + +`Set` のように、要素はオブジェクトに追加した順番に反復処理することができます。 +`Set` 風オブジェクトと `Set` には、名前と動作が同じプロパティとメソッドもあります。 +しかし Set とは異なり、各アイテムには特定の定義済みの型しか使用できません。 + +許可されている型には仕様書の IDL 定義に設定されています。 +例えば、 {{domxref("GPUSupportedFeatures")}} は `Set` 風オブジェクトですが、キーと値として文字列を使用する必要があります。 +これは下記の仕様 IDL で定義されています。 + +```webidl +interface GPUSupportedFeatures { + readonly setlike; +}; +``` + +`Set` 風オブジェクトは、読み取り専用か読み書き可能かのどちらかです(上記の IDL で `readonly` キーワードを確認してください。 + +- 読み取り専用の `Set` 風オブジェクトには [`size`](#set.prototype.size) プロパティがあり、 [`entries()`](#set.prototype.entries), [`forEach()`](#set.prototype.foreach), [`has()`](#set.prototype.has), [`keys()`](#set.prototype.keys), [`values()`](#set.prototype.values), [`@@iterator`](#set.prototypeiterator) の各メソッドがあります。 +- 読み書き可能な `Set` 風オブジェクトには、それに加えて [`clear()`](#set.prototype.clear), [`delete()`](#set.prototype.delete), [`add()`](#set.prototype.add) の各メソッドがあります。 + +メソッドとプロパティは `Set` の等価なエンティティと同じ動作をしますが、項目のの型に制限があります。 + +以下のものが、読み取り専用の `Set` 風ブラウザーオブジェクトの例です。 + +- {{domxref("GPUSupportedFeatures")}} +- {{domxref("XRAnchorSet")}} + +以下のものが、読み書き可能な `Set` 風ブラウザーオブジェクトの例です。 + +- {{domxref("CustomStateSet")}} +- {{domxref("FontFaceSet")}} +- {{domxref("Highlight")}} ## コンストラクター @@ -28,40 +66,40 @@ slug: Web/JavaScript/Reference/Global_Objects/Set ## 静的プロパティ -- {{jsxref("Set.@@species", "get Set[@@species]")}} +- {{jsxref("Set/@@species", "Set[@@species]")}} - : 派生オブジェクトを生成するために使用されるコンストラクター関数です。 ## インスタンスプロパティ -- `Set.prototype[@@toStringTag]` - - : [`@@toStringTag`](/ja/docs/Web/JavaScript/Reference/Global_Objects/Symbol/toStringTag) プロパティの初期値は文字列の `"Set"` です。 このプロパティは {{jsxref("Object.prototype.toString()")}} で利用されます。 +これらのプロパティは `Set.prototype` で定義されており、すべての `Set` インスタンスから共有されます。 + +- {{jsxref("Object/constructor", "Set.prototype.constructor")}} + - : このインスタンスオブジェクトを生成したコンストラクター関数です。 `Set` インスタンスの場合、初期値は {{jsxref("Set/Set", "Set")}} コンストラクターです。 - {{jsxref("Set.prototype.size")}} - : `Set` オブジェクト内の値の数を返します。 +- `Set.prototype[@@toStringTag]` + - : [`@@toStringTag`](/ja/docs/Web/JavaScript/Reference/Global_Objects/Symbol/toStringTag) プロパティの初期値は文字列の `"Set"` です。 このプロパティは {{jsxref("Object.prototype.toString()")}} で利用されます。 ## インスタンスメソッド -- {{jsxref("Set.add", "Set.prototype.add(value)")}} - - : `value` を `Set` オブジェクトに追加します。`Set` オブジェクトを返します。 +- {{jsxref("Set.prototype.add()")}} + - : `Set` オブジェクト内に同じ値を持つ要素がまだ存在しなかった場合、指定した値を持つ新しい要素を `Set` オブジェクトに挿入します。 - {{jsxref("Set.prototype.clear()")}} - : すべての要素を `Set` オブジェクトから取り除きます。 -- {{jsxref("Set.delete", "Set.prototype.delete(value)")}} +- {{jsxref("Set.prototype.delete()")}} - : `value` に関連した要素を取り除き、要素の削除に成功したかどうかを示す論理値を返します。 `Set.prototype.has(value)` はその後は `false` を返します。 -- {{jsxref("Set.has", "Set.prototype.has(value)")}} +- {{jsxref("Set.prototype.entries()")}} + - : `Set` オブジェクト内の各要素を **`[value, value]` の配列**の形で挿入順で返す、新しいイテレーターオブジェクトを返します。これは {{jsxref("Map")}} オブジェクトと似ていますが、それぞれの項目の _key_ が `Set` では _value_ と同じになります。 +- {{jsxref("Set.prototype.forEach()")}} + - : `Set` オブジェクト内に存在する各値に対して、挿入順に一度ずつ `callbackFn` を呼びます。`thisArg` 引数が指定された場合、それぞれの `callbackFn` の呼び出しにおいて `this` の値として使用されます。 +- {{jsxref("Set.prototype.has()")}} - : `Set` オブジェクト内に引数で与えられた値をもつ要素が存在するかどうかを示す論理値を返します。 -- {{jsxref("Set.prototype.@@iterator()", "Set.prototype[@@iterator]()")}} - - : `Set` オブジェクト内の各要素の**値**を挿入順に返す、新しいイテレーターオブジェクトを返します。 -- {{jsxref("Set.prototype.values()")}} - - : `Set` オブジェクト内の各要素の**値**を挿入順に返す、新しいイテレーターオブジェクトを返します。 - {{jsxref("Set.prototype.keys()")}} - : {{jsxref("Set.prototype.values()")}} の別名です。 -- {{jsxref("Set.prototype.entries()")}} - - - : `Set` オブジェクト内の各要素を **`[value, value]` の配列**の形で挿入順で返す、新しいイテレーターオブジェクトを返します。 - - これは {{jsxref("Map")}} オブジェクトと似ていますが、それぞれの項目の _key_ が `set` では _value_ と同じになります。 - -- {{jsxref("Set.forEach", "Set.prototype.forEach(callbackFn[, thisArg])")}} - - : `Set` オブジェクト内に存在する各値に対して、挿入順に一度ずつ `callbackFn` を呼びます。`thisArg` 引数が指定された場合、それぞれの `callbackFn` の呼び出しにおいて `this` の値として使用されます。 +- {{jsxref("Set.prototype.values()")}} + - : `Set` オブジェクト内の各要素の**値**を挿入順に返す、新しいイテレーターオブジェクトを返します。 +- [`Set.prototype[@@iterator]()`](/ja/docs/Web/JavaScript/Reference/Global_Objects/Set/@@iterator) + - : `Set` オブジェクト内の各要素の**値**を挿入順に返す、新しいイテレーターオブジェクトを返します。 ## 例 @@ -70,10 +108,10 @@ slug: Web/JavaScript/Reference/Global_Objects/Set ```js const mySet1 = new Set(); -mySet1.add(1); // Set [ 1 ] -mySet1.add(5); // Set [ 1, 5 ] -mySet1.add(5); // Set [ 1, 5 ] -mySet1.add("some text"); // Set [ 1, 5, 'some text' ] +mySet1.add(1); // Set(1) { 1 } +mySet1.add(5); // Set(2) { 1, 5 } +mySet1.add(5); // Set(2) { 1, 5 } +mySet1.add("some text"); // Set(3) { 1, 5, 'some text' } const o = { a: 1, b: 2 }; mySet1.add(o); @@ -100,44 +138,52 @@ console.log(mySet1); // Set(5) { 1, "some text", {…}, {…}, 5 } ### Set の反復処理 +挿入順に要素を訪問する集合に対する反復処理です。 + ```js -// セット内のアイテムを反復処理 -// アイテムのログ出力順: 1, "some text", {"a": 1, "b": 2}, {"a": 1, "b": 2} -for (let item of mySet1) console.log(item) +for (const item of mySet1) { + console.log(item); +} +// 1, "some text", { "a": 1, "b": 2 }, { "a": 1, "b": 2 }, 5 -// アイテムのログ出力順: 1, "some text", {"a": 1, "b": 2}, {"a": 1, "b": 2} -for (let item of mySet1.keys()) console.log(item) +for (const item of mySet1.keys()) { + console.log(item); +} +// 1, "some text", { "a": 1, "b": 2 }, { "a": 1, "b": 2 }, 5 -// アイテムのログ出力順: 1, "some text", {"a": 1, "b": 2}, {"a": 1, "b": 2} -for (let item of mySet1.values()) console.log(item) +for (const item of mySet1.values()) { + console.log(item); +} +// 1, "some text", { "a": 1, "b": 2 }, { "a": 1, "b": 2 }, 5 -// アイテムのログ出力順: 1, "some text", {"a": 1, "b": 2}, {"a": 1, "b": 2} -// (ここではキーと値は同じ) -for (let [key, value] of mySet1.entries()) console.log(key) +// ここではキーと値は同じ +for (const [key, value] of mySet1.entries()) { + console.log(key); +} +// 1, "some text", { "a": 1, "b": 2 }, { "a": 1, "b": 2 }, 5 // Set オブジェクトを Array オブジェクトに Array.from で変換 -const myArr = Array.from(mySet1) // [1, "some text", {"a": 1, "b": 2}, {"a": 1, "b": 2}] +const myArr = Array.from(mySet1); // [1, "some text", {"a": 1, "b": 2}, {"a": 1, "b": 2}, 5] // HTML 文書内であれば以下のものも動作する -mySet1.add(document.body) -mySet1.has(document.querySelector('body')) // true +mySet1.add(document.body); +mySet1.has(document.querySelector("body")); // true // Set と Array の間の変換 -const mySet2 = new Set([1, 2, 3, 4]) -mySet2.size // 4 -[...mySet2] // [1, 2, 3, 4] +const mySet2 = new Set([1, 2, 3, 4]); +console.log(mySet2.size); // 4 +console.log([...mySet2]); // [1, 2, 3, 4] // 交差する様子をシミュレートすることができる -const intersection = new Set([...mySet1].filter(x => mySet2.has(x))) +const intersection = new Set([...mySet1].filter((x) => mySet2.has(x))); // 差をシミュレートすることができる -const difference = new Set([...mySet1].filter(x => !mySet2.has(x))) +const difference = new Set([...mySet1].filter((x) => !mySet2.has(x))); // セット内の項目を forEach() で反復処理 -mySet2.forEach(function(value) { - console.log(value) -}) - +mySet2.forEach((value) => { + console.log(value); +}); // 1 // 2 // 3 @@ -148,7 +194,7 @@ mySet2.forEach(function(value) { ```js function isSuperset(set, subset) { - for (let elem of subset) { + for (const elem of subset) { if (!set.has(elem)) { return false; } @@ -157,16 +203,16 @@ function isSuperset(set, subset) { } function union(setA, setB) { - let _union = new Set(setA); - for (let elem of setB) { + const _union = new Set(setA); + for (const elem of setB) { _union.add(elem); } return _union; } function intersection(setA, setB) { - let _intersection = new Set(); - for (let elem of setB) { + const _intersection = new Set(); + for (const elem of setB) { if (setA.has(elem)) { _intersection.add(elem); } @@ -175,8 +221,8 @@ function intersection(setA, setB) { } function symmetricDifference(setA, setB) { - let _difference = new Set(setA); - for (let elem of setB) { + const _difference = new Set(setA); + for (const elem of setB) { if (_difference.has(elem)) { _difference.delete(elem); } else { @@ -187,8 +233,8 @@ function symmetricDifference(setA, setB) { } function difference(setA, setB) { - let _difference = new Set(setA); - for (let elem of setB) { + const _difference = new Set(setA); + for (const elem of setB) { _difference.delete(elem); } return _difference; @@ -206,13 +252,13 @@ symmetricDifference(setA, setC); // returns Set {1, 2, 5, 6} difference(setA, setC); // returns Set {1, 2} ``` -### Array オブジェクトとの関係 +### 配列との関係 ```js -let myArray = ["value1", "value2", "value3"]; +const myArray = ["value1", "value2", "value3"]; // 通常の Set コンストラクターを使用して、 Array を Set に変換 -let mySet = new Set(myArray); +const mySet = new Set(myArray); mySet.has("value1"); // returns true @@ -235,7 +281,7 @@ console.log([...new Set(numbers)]); ### 文字列との関係 ```js -let text = "India"; +const text = "India"; const mySet = new Set(text); // Set(5) {'I', 'n', 'd', 'i', 'a'} mySet.size; // 5 @@ -248,12 +294,10 @@ new Set("firefox"); // Set(6) { "f", "i", "r", "e", "o", "x" } ### Set を使用して、リスト中の値の一意性を保証 ```js -const array = Array.from(document.querySelectorAll("[id]")).map(function (e) { - return e.id; -}); +const array = Array.from(document.querySelectorAll("[id]")).map((e) => e.id); const set = new Set(array); -console.assert(set.size == array.length); +console.assert(set.size === array.length); ``` ## 仕様書 From 52d3273e5b6eb43bdf62a6bf18e0fbd9bb635402 Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Sun, 17 Sep 2023 23:51:20 +0900 Subject: [PATCH 03/43] =?UTF-8?q?2023/03/27=20=E6=99=82=E7=82=B9=E3=81=AE?= =?UTF-8?q?=E8=8B=B1=E8=AA=9E=E7=89=88=E3=81=AB=E5=90=8C=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reference/global_objects/set/set/index.md | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/files/ja/web/javascript/reference/global_objects/set/set/index.md b/files/ja/web/javascript/reference/global_objects/set/set/index.md index 15055c6a146e79..9e5e3eb6fe75ae 100644 --- a/files/ja/web/javascript/reference/global_objects/set/set/index.md +++ b/files/ja/web/javascript/reference/global_objects/set/set/index.md @@ -1,21 +1,25 @@ --- title: Set() コンストラクター slug: Web/JavaScript/Reference/Global_Objects/Set/Set +l10n: + sourceCommit: 84aaeee9a64e1bfe002837468eb798e5d5eb2bbe --- {{JSRef}} -**`Set` コンストラクター**は、あらゆる型の一意な[プリミティブ値](/ja/docs/Glossary/Primitive)やオブジェクト参照を格納する `Set` オブジェクトを生成します。 +**`Set()`** コンストラクターは {{jsxref("Set")}} オブジェクトを生成します。 {{EmbedInteractiveExample("pages/js/set-prototype-constructor.html")}} ## 構文 -```js -new Set(); -new Set(iterable); +```js-nolint +new Set() +new Set(iterable) ``` +> **メモ:** `Set()` は [`new`](/ja/docs/Web/JavaScript/Reference/Operators/new) を付けてのみ構築することができ案す。 `new` 無しで呼び出そうとすると {{jsxref("TypeError")}} が発生します。 + ### 引数 - `iterable` {{optional_inline}} @@ -33,13 +37,13 @@ new Set(iterable); ### `Set` オブジェクトの使用 ```js -let mySet = new Set(); +const mySet = new Set(); mySet.add(1); // Set [ 1 ] mySet.add(5); // Set [ 1, 5 ] mySet.add(5); // Set [ 1, 5 ] mySet.add("some text"); // Set [ 1, 5, 'some text' ] -let o = { a: 1, b: 2 }; +const o = { a: 1, b: 2 }; mySet.add(o); ``` @@ -53,5 +57,5 @@ mySet.add(o); ## 関連情報 -- `Set` のポリフィルが [`core-js`](https://github.com/zloirock/core-js#set) で利用できます +- [`Set` のポリフィル (`core-js`)](https://github.com/zloirock/core-js#set) - {{jsxref("Set")}} From 84217831505d2fe63a3a21422fe5fa9ced1a7d4d Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Sun, 17 Sep 2023 23:59:40 +0900 Subject: [PATCH 04/43] =?UTF-8?q?2023/04/10=20=E6=99=82=E7=82=B9=E3=81=AE?= =?UTF-8?q?=E8=8B=B1=E8=AA=9E=E7=89=88=E3=81=AB=E5=90=8C=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../global_objects/set/@@species/index.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/files/ja/web/javascript/reference/global_objects/set/@@species/index.md b/files/ja/web/javascript/reference/global_objects/set/@@species/index.md index 9b0364583c5fe3..a6eaf5f38e65de 100644 --- a/files/ja/web/javascript/reference/global_objects/set/@@species/index.md +++ b/files/ja/web/javascript/reference/global_objects/set/@@species/index.md @@ -1,6 +1,8 @@ --- -title: get Set[@@species] +title: Set[@@species] slug: Web/JavaScript/Reference/Global_Objects/Set/@@species +l10n: + sourceCommit: bf81c9ed7de8cfd94cf1fc7f77e23b987f753a8b --- {{JSRef}} @@ -15,27 +17,27 @@ Set[Symbol.species] ### 返値 -`get @@species` が呼び出されたコンストラクタ (`this`) の値です。この返値は、コピーされた `Set` インスタンスを生成するために使用されます。 +`get @@species` が呼び出されたコンストラクター (`this`) の値です。この返値は、コピーされた `Set` インスタンスを生成するために使用されます。 ## 解説 `@@species` アクセサープロパティは、 `Set` オブジェクトの既定のコンストラクターを返します。サブクラスのコンストラクターはコンストラクターに代入することで、これをオーバーライドすることができます。 -> **Note:** このプロパティは現在、いずれの `Set` のメソッドでも使用されていません。 +> **メモ:** このプロパティは現在、 `Set` のどのメソッドでも使用されていません。 ## 例 -### 通常のオブジェクトの spicies +### 通常のオブジェクトの species -`@@species` プロパティは、`Set` オブジェクトの既定のコンストラクター関数である `Set` コンストラクターを返します。 +`@@species` プロパティは、既定のコンストラクター関数、すなわち `Set` の `Set` コンストラクターを返します。 ```js Set[Symbol.species]; // Set() 関数 ``` -### 派生オブジェクトの spicies +### 派生オブジェクトの species -派生コレクションオブジェクト(たとえば、独自の集合である `MySet`)では、`MySet` の species は `MySet` コンストラクターです。しかし、派生クラスのメソッドで、親である `Set` オブジェクトを返すためにこれをオーバーライドしたいかもしれません。 +独自の `Set` のサブクラス、例えば `MySet` のインスタンス内では、 `MySet` の species は `MySet` コンストラクターです。しかし、派生クラスのメソッドで、親である `Set` オブジェクトを返すためにこれをオーバーライドしたいかもしれません。 ```js class MySet extends Set { From fbd5ed912e0aa2406b05189738a26ce89d7f9ab4 Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Mon, 18 Sep 2023 00:02:10 +0900 Subject: [PATCH 05/43] =?UTF-8?q?2023/04/12=20=E6=99=82=E7=82=B9=E3=81=AE?= =?UTF-8?q?=E8=8B=B1=E8=AA=9E=E7=89=88=E3=81=AB=E5=90=8C=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../javascript/reference/global_objects/set/size/index.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/files/ja/web/javascript/reference/global_objects/set/size/index.md b/files/ja/web/javascript/reference/global_objects/set/size/index.md index 88fd62563d85a8..c86c0e7e7451bf 100644 --- a/files/ja/web/javascript/reference/global_objects/set/size/index.md +++ b/files/ja/web/javascript/reference/global_objects/set/size/index.md @@ -1,11 +1,13 @@ --- title: Set.prototype.size slug: Web/JavaScript/Reference/Global_Objects/Set/size +l10n: + sourceCommit: 16bacf2194dc9e9ff6ee5bcc65316547cf88a8d9 --- {{JSRef}} -**`size`** アクセサープロパティは {{jsxref("Set")}} オブジェクト内の(固有の)要素の数を返します。 +**`size`** は {{jsxref("Set")}} インスタンスのアクセサープロパティで、この集合内の(固有の)要素の数を返します。 {{EmbedInteractiveExample("pages/js/set-prototype-size.html")}} @@ -18,12 +20,12 @@ slug: Web/JavaScript/Reference/Global_Objects/Set/size ### size の使用 ```js -var mySet = new Set(); +const mySet = new Set(); mySet.add(1); mySet.add(5); mySet.add("some text"); -mySet.size; // 3 +console.log(mySet.size); // 3 ``` ## 仕様書 From 2c603f0c30205736c3462da208c6a41de4e7d7c3 Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Mon, 18 Sep 2023 01:45:38 +0900 Subject: [PATCH 06/43] =?UTF-8?q?2023/09/01=20=E6=99=82=E7=82=B9=E3=81=AE?= =?UTF-8?q?=E8=8B=B1=E8=AA=9E=E7=89=88=E3=81=AB=E5=90=8C=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reference/global_objects/set/delete/index.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/files/ja/web/javascript/reference/global_objects/set/delete/index.md b/files/ja/web/javascript/reference/global_objects/set/delete/index.md index 06cf2046a81ae0..ca80829ef847c7 100644 --- a/files/ja/web/javascript/reference/global_objects/set/delete/index.md +++ b/files/ja/web/javascript/reference/global_objects/set/delete/index.md @@ -1,18 +1,20 @@ --- title: Set.prototype.delete() slug: Web/JavaScript/Reference/Global_Objects/Set/delete +l10n: + sourceCommit: 88d71e500938fa8ca969fe4fe3c80a5abe23d767 --- {{JSRef}} -**`delete()`** メソッドは、指定された値が設定されていれば、 `Set` オブジェクトから取り除きます。 +**`delete()`** は {{jsxref("Set")}} インターフェイスのメソッドで、指定された値がこの集合にあれば、取り除きます。 {{EmbedInteractiveExample("pages/js/set-prototype-delete.html")}} ## 構文 -```js -delete value; +```js-nolint +setInstance.delete(value) ``` ### 引数 @@ -50,7 +52,7 @@ setObj.add({ x: 10, y: 20 }); // セットにオブジェクトを追加 setObj.add({ x: 20, y: 30 }); // セットにオブジェクトを追加 // `x > 10` のポイントを削除 -setObj.forEach(function (point) { +setObj.forEach((point) => { if (point.x > 10) { setObj.delete(point); } From 93b3709cdc57b132001fb5f42089a468ff5e32cb Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Mon, 18 Sep 2023 01:22:00 +0900 Subject: [PATCH 07/43] =?UTF-8?q?2023/08/25=20=E6=99=82=E7=82=B9=E3=81=AE?= =?UTF-8?q?=E8=8B=B1=E8=AA=9E=E7=89=88=E3=81=AB=E5=90=8C=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../global_objects/set/@@iterator/index.md | 23 ++++++++++----- .../global_objects/set/clear/index.md | 24 +++++++++------ .../global_objects/set/entries/index.md | 18 ++++++++---- .../global_objects/set/keys/index.md | 29 +++++++++++++++++-- .../global_objects/set/values/index.md | 21 +++++++++----- 5 files changed, 83 insertions(+), 32 deletions(-) diff --git a/files/ja/web/javascript/reference/global_objects/set/@@iterator/index.md b/files/ja/web/javascript/reference/global_objects/set/@@iterator/index.md index 1f48fd3df3e4f4..e2a74ad54c8369 100644 --- a/files/ja/web/javascript/reference/global_objects/set/@@iterator/index.md +++ b/files/ja/web/javascript/reference/global_objects/set/@@iterator/index.md @@ -1,31 +1,37 @@ --- title: Set.prototype[@@iterator]() slug: Web/JavaScript/Reference/Global_Objects/Set/@@iterator +l10n: + sourceCommit: 27180875516cc311342e74b596bfb589b7211e0c --- {{JSRef}} -`Set` オブジェクトの **`@@iterator`** メソッドは[反復処理プロトコル](/ja/docs/Web/JavaScript/Reference/Iteration_protocols)を実装し、[スプレッド構文](/ja/docs/Web/JavaScript/Reference/Operators/Spread_syntax) や [`for...of`](/ja/docs/Web/JavaScript/Reference/Statements/for...of) 文などの反復可能オブジェクトを期待するほとんどの文法で `Set` を利用できるようにします。`@@iterator` メソッドは `Set` の値を返すイテレーターを返します。 +**`[@@iterator]()`** は {{jsxref("Set")}} インスタンスのメソッドで、[反復処理プロトコル](/ja/docs/Web/JavaScript/Reference/Iteration_protocols)を実装しており、 `Set` オブジェクトを、反復可能オブジェクトを期待するほとんどの構文、例えば[スプレッド構文](/ja/docs/Web/JavaScript/Reference/Operators/Spread_syntax) や {{jsxref("Statements/for...of", "for...of")}} ループなどで利用できるようにします。これは、挿入順に集合の値を返す[集合イテレーターオブジェクト](/ja/docs/Web/JavaScript/Reference/Global_Objects/Iterator)を返します。 -**`@@iterator`** プロパティの初期値は {{jsxref("Set.prototype.values()", "values")}} プロパティの初期値と同じ関数オブジェクトです。 +**`@@iterator`** プロパティの初期値は {{jsxref("Set.prototype.values")}} プロパティの初期値と同じ関数オブジェクトです。 {{EmbedInteractiveExample("pages/js/set-prototype-@@iterator.html")}} ## 構文 -```js -mySet[Symbol.iterator](); +```js-nolint +set[Symbol.iterator]() ``` +### 引数 + +なし。 + ### 返値 -返値は {{jsxref("Set.prototype.values()", "values()")}} 同様、`Set` の値を返す新しい反復可能なイテレーターオブジェクトです。 +{{jsxref("Set.prototype.values()")}} と同じく、値の集合を生成する新しい[反復可能なイテレーターオブジェクト](/ja/docs/Web/JavaScript/Reference/Global_Objects/Iterator)を返します。 ## 例 -### for..of とともに \[@@iterator]\() を使う +### for...of ループを使用した反復処理 -このメソッドを直接呼び出す必要はほとんどないことに注意してください。`iterator` メソッドの存在によって `Set` オブジェクトは[反復可能](/ja/docs/Web/JavaScript/Reference/Iteration_protocols#反復可能プロトコル)になり、`for...of` 文のような反復処理の構文は自動的にこのメソッドを呼ぶことで反復処理を行うためのイテレーターを取得できるようになります。 +このメソッドを直接呼び出す必要はほとんどないことに注意してください。`@@iterator` メソッドの存在によって `Set` オブジェクトは[反復可能](/ja/docs/Web/JavaScript/Reference/Iteration_protocols#反復可能プロトコル)になり、`for...of` 文のような反復処理の構文は自動的にこのメソッドを呼ぶことで反復処理を行うためのイテレーターを取得できるようになります。 ```js const mySet = new Set(); @@ -65,6 +71,9 @@ console.log(setIter.next().value); // Object ## 関連情報 +- {{jsxref("Set")}} - {{jsxref("Set.prototype.entries()")}} - {{jsxref("Set.prototype.keys()")}} - {{jsxref("Set.prototype.values()")}} +- {{jsxref("Symbol.iterator")}} +- [反復可能プロトコル](/ja/docs/Web/JavaScript/Reference/Iteration_protocols) diff --git a/files/ja/web/javascript/reference/global_objects/set/clear/index.md b/files/ja/web/javascript/reference/global_objects/set/clear/index.md index c234186d1cdece..7eb92d288a86ce 100644 --- a/files/ja/web/javascript/reference/global_objects/set/clear/index.md +++ b/files/ja/web/javascript/reference/global_objects/set/clear/index.md @@ -1,40 +1,46 @@ --- title: Set.prototype.clear() slug: Web/JavaScript/Reference/Global_Objects/Set/clear +l10n: + sourceCommit: 27180875516cc311342e74b596bfb589b7211e0c --- {{JSRef}} -**`clear()`** メソッドは、 `Set` オブジェクトからすべての要素を取り除きます。 +**`clear()`** は {{jsxref("Set")}} インターフェイスのメソッドで、この集合からすべての要素を取り除きます。 {{EmbedInteractiveExample("pages/js/set-prototype-clear.html")}} ## 構文 -```js -clear(); +```js-nolint +clear() ``` +### 引数 + +なし。 + ### 返値 -{{jsxref("undefined")}} です。 +なし ({{jsxref("undefined")}})。 ## 例 ### clear() メソッドの使用 ```js -var mySet = new Set(); +const mySet = new Set(); mySet.add(1); mySet.add("foo"); -mySet.size; // 2 -mySet.has("foo"); // true +console.log(mySet.size); // 2 +console.log(mySet.has("foo")); // true mySet.clear(); -mySet.size; // 0 -mySet.has("bar"); // false +console.log(mySet.size); // 0 +console.log(mySet.has("bar")); // false ``` ## 仕様書 diff --git a/files/ja/web/javascript/reference/global_objects/set/entries/index.md b/files/ja/web/javascript/reference/global_objects/set/entries/index.md index c23ffd12e1707c..6d41f3c90a18b0 100644 --- a/files/ja/web/javascript/reference/global_objects/set/entries/index.md +++ b/files/ja/web/javascript/reference/global_objects/set/entries/index.md @@ -1,35 +1,41 @@ --- title: Set.prototype.entries() slug: Web/JavaScript/Reference/Global_Objects/Set/entries +l10n: + sourceCommit: 27180875516cc311342e74b596bfb589b7211e0c --- {{JSRef}} -**`entries()`** メソッドは、新しい[イテレーター](/ja/docs/Web/JavaScript/Guide/Iterators_and_Generators)オブジェクトを返します。これは **`[value, value]` の配列**で `Set` オブジェクトの各要素を挿入順に返します。 `Set` オブジェクトは、`Map` オブジェクトのように `key` を持つことはありません。しかしながら、`Map` オブジェクトと似た API をもつために、それぞれの*項目*は _key_ と _value_ に対して同じ値を持ちます。そのため、配列 `[value, value]` が返されます。 +**`entries()`** は {{jsxref("Set")}} インターフェイスのメソッドで、集合の新しい[イテレーター](/ja/docs/Web/JavaScript/Reference/Global_Objects/Iterator)オブジェクトを返します。これは **`[value, value]` の配列**の形で集合の各要素を挿入順に返します。 `Set` オブジェクトは、`Map` オブジェクトのように `key` を持つことはありません。しかしながら、`Map` オブジェクトと似た API をもつために、それぞれの項目は _key_ と _value_ に対して同じ値を持ちます。そのため、配列 `[value, value]` が返されます。 {{EmbedInteractiveExample("pages/js/set-prototype-entries.html")}} ## 構文 -```js -entries(); +```js-nolint +entries() ``` +### 引数 + +なし。 + ### 返値 -**`[value, value]` の配列**で `Set` オブジェクトの各要素を挿入順に返す、新しいイテレーターオブジェクトです。 +新しい[反復可能なイテレーターオブジェクト](/ja/docs/Web/JavaScript/Reference/Global_Objects/Iterator)です。 ## 例 ### entries() の使用 ```js -var mySet = new Set(); +const mySet = new Set(); mySet.add("foobar"); mySet.add(1); mySet.add("baz"); -var setIter = mySet.entries(); +const setIter = mySet.entries(); console.log(setIter.next().value); // ["foobar", "foobar"] console.log(setIter.next().value); // [1, 1] diff --git a/files/ja/web/javascript/reference/global_objects/set/keys/index.md b/files/ja/web/javascript/reference/global_objects/set/keys/index.md index 27663080530b44..b47b4c003b4943 100644 --- a/files/ja/web/javascript/reference/global_objects/set/keys/index.md +++ b/files/ja/web/javascript/reference/global_objects/set/keys/index.md @@ -1,11 +1,13 @@ --- title: Set.prototype.keys() slug: Web/JavaScript/Reference/Global_Objects/Set/keys +l10n: + sourceCommit: 27180875516cc311342e74b596bfb589b7211e0c --- {{JSRef}} -**`keys()`** メソッドは [`values()`](/ja/docs/Web/JavaScript/Reference/Global_Objects/Set/values) メソッドのエイリアスです。 +**`keys()`** は {{jsxref("Set")}} インターフェイスのメソッドで、 [`values()`](/ja/docs/Web/JavaScript/Reference/Global_Objects/Set/values) メソッドの別名です。 ## 構文 @@ -13,9 +15,32 @@ slug: Web/JavaScript/Reference/Global_Objects/Set/keys keys() ``` +### 引数 + +なし。 + ### 返値 -与えられた `Set` の各要素の値を挿入順で含んだ新しいイテレーターオブジェクト。 +新しい[反復可能なイテレーターオブジェクト](/ja/docs/Web/JavaScript/Reference/Global_Objects/Iterator)です。 + +## 例 + +### keys() の使用 + +`keys()` メソッドは {{jsxref("Set/values", "values()")}} メソッドとまったく同じです。 + +```js +const mySet = new Set(); +mySet.add("foo"); +mySet.add("bar"); +mySet.add("baz"); + +const setIter = mySet.keys(); + +console.log(setIter.next().value); // "foo" +console.log(setIter.next().value); // "bar" +console.log(setIter.next().value); // "baz" +``` ## 仕様書 diff --git a/files/ja/web/javascript/reference/global_objects/set/values/index.md b/files/ja/web/javascript/reference/global_objects/set/values/index.md index c94cbb329b1c7b..072cd691b518b6 100644 --- a/files/ja/web/javascript/reference/global_objects/set/values/index.md +++ b/files/ja/web/javascript/reference/global_objects/set/values/index.md @@ -1,37 +1,41 @@ --- title: Set.prototype.values() slug: Web/JavaScript/Reference/Global_Objects/Set/values +l10n: + sourceCommit: 27180875516cc311342e74b596bfb589b7211e0c --- {{JSRef}} -**`values()`** メソッドは、新しい[イテレーター](/ja/docs/Web/JavaScript/Guide/Iterators_and_Generators)オブジェクトを返します。これは `Set` オブジェクトの各要素の値を挿入順に返します。 - -> **メモ:** **`keys()`** メソッドは({{jsxref("Map")}} オブジェクトと似せるため)このメソッドに対するエイリアスになっています。まったく同じように動作し、 `Set` の各要素の**値**を返します。 +**`values()`** は {{jsxref("Set")}} インターフェイスのメソッドで、集合の新しい[イテレーター](/ja/docs/Web/JavaScript/Reference/Global_Objects/Iterator)オブジェクトを返します。これはこの集合のそれぞれの要素をの値を挿入順に返します。 {{EmbedInteractiveExample("pages/js/set-prototype-values.html")}} ## 構文 -```js -values(); +```js-nolint +values() ``` +### 引数 + +なし。 + ### 返値 -新しいイテレーターオブジェクトで、この `Set` オブジェクト内のそれぞれの要素の値を返します。 +新しい[反復可能なイテレーターオブジェクト](/ja/docs/Web/JavaScript/Reference/Global_Objects/Iterator)です。 ## 例 ### values() の使用 ```js -var mySet = new Set(); +const mySet = new Set(); mySet.add("foo"); mySet.add("bar"); mySet.add("baz"); -var setIter = mySet.values(); +const setIter = mySet.values(); console.log(setIter.next().value); // "foo" console.log(setIter.next().value); // "bar" @@ -49,3 +53,4 @@ console.log(setIter.next().value); // "baz" ## 関連情報 - {{jsxref("Set.prototype.entries()")}} +- {{jsxref("Set.prototype.keys()")}} From 743bcb140765d3dd1f84ad26e33f1ff38b4a834a Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Mon, 18 Sep 2023 01:59:09 +0900 Subject: [PATCH 08/43] =?UTF-8?q?2023/09/12=20=E6=99=82=E7=82=B9=E3=81=AE?= =?UTF-8?q?=E8=8B=B1=E8=AA=9E=E7=89=88=E3=81=AB=E5=90=8C=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../global_objects/set/foreach/index.md | 72 ++++++------------- 1 file changed, 21 insertions(+), 51 deletions(-) diff --git a/files/ja/web/javascript/reference/global_objects/set/foreach/index.md b/files/ja/web/javascript/reference/global_objects/set/foreach/index.md index 6887d05bb3ee56..d9f5fa5bf99a26 100644 --- a/files/ja/web/javascript/reference/global_objects/set/foreach/index.md +++ b/files/ja/web/javascript/reference/global_objects/set/foreach/index.md @@ -1,66 +1,36 @@ --- title: Set.prototype.forEach() slug: Web/JavaScript/Reference/Global_Objects/Set/forEach +l10n: + sourceCommit: c2445ce1dc3a0170e2fbfdbee10e18a7455c2282 --- {{JSRef}} -**`forEach()`** メソッドは、与えられた関数を `Set` オブジェクトの各値に対して一回ずつ、挿入順で実行します。 +**`forEach()`** は {{jsxref("Set")}} インターフェイスのメソッドで、指定された関数をこの集合のそれぞれの値に対して一回ずつ、挿入順で実行します。 {{EmbedInteractiveExample("pages/js/set-prototype-foreach.html")}} ## 構文 -```js -// Arrow function -forEach(() => { - /* ... */ -}); -forEach((value) => { - /* ... */ -}); -forEach((value, key) => { - /* ... */ -}); -forEach((value, key, set) => { - /* ... */ -}); - -// Callback function -forEach(callbackFn); -forEach(callbackFn, thisArg); - -// Inline callback function -forEach(function () { - /* ... */ -}); -forEach(function (value) { - /* ... */ -}); -forEach(function (value, key) { - /* ... */ -}); -forEach(function (value, key, set) { - /* ... */ -}); -forEach(function (value, key, set) { - /* ... */ -}, thisArg); +```js-nolint +forEach(callbackFn) +forEach(callbackFn, thisArg) ``` ### 引数 - `callback` + - : この集合のそれぞれの項目に対して実行する関数です。この関数は次の引数で呼び出されます。 - - : 各要素に対して実行する関数で、 3 つの引数を受け付けます。 - - - `value`, `key` - - : `Set` で現在処理されている要素。 `Set` にはキー (key) がないため値 (value) が両方に渡されます。 + - `value` + - : それぞれの反復処理の値です。 + - `key` + - : それぞれの反復処理のキーです。これは常に `value` と同じです。 - `set` - - : `forEach()` が呼び出された `Set` オブジェクトです。 - -- `thisArg` - - : `callbackFn` を実行するとき、`this` として使用する値です。 + - : 反復処理が行われる集合です。 +- `thisArg` {{optional_inline}} + - : `callbackFn` を実行するときn、`this` として使用する値です。 ### 返値 @@ -68,15 +38,15 @@ forEach(function (value, key, set) { ## 解説 -`forEach()` メソッドは `Set` オブジェクトに実際に存在するそれぞれの値に対して、指定された `callback` を一回ずつ実行します。削除された値に対しては呼び出しません。ただし、`undefined` の値をもつ要素に対しては実行します。 +`forEach()` メソッドは、この `Set` オブジェクトに実際に存在するそれぞれの値に対して、指定された `callback` を一回ずつ実行します。削除された値に対しては呼び出しません。ただし、`undefined` の値をもつ要素に対しては実行します。 `callback` は **3 つの引数**で呼び出されます。 -- **要素の値** -- **要素のキー** -- **走査を行う `Set` オブジェクト** +- この**要素の値** +- この**要素のキー** +- **走査を行っている `Set` オブジェクト** -しかし、 `Set` オブジェクトにキーがないので、最初の 2 つの引数は、両方とも {{jsxref("Set")}} に含まれる**値**です。そのため `callback` 関数は {{jsxref("Map.foreach", "Map")}} や {{jsxref("Array.forEach","Array")}} の `forEach()` メソッドと整合が取れています。 +しかし、 `Set` オブジェクトにキーがないので、最初の 2 つの引数は、両方とも {{jsxref("Set")}} に含まれる**値**です。これにより、他の {{jsxref("Map/foreach", "Map")}} や {{jsxref("Array/forEach", "Array")}} の `forEach()` メソッドと整合が取れています。 `thisArg` 引数が `forEach()` に渡された場合、 `callback` を呼び出すときにこれが渡され、 `this` 値として使用されます。渡されなかった場合は、さもなければ、`this` 値として使用するために `undefined` 値が渡されます。 `this` の値が最終的に `callback` から見える姿は、[関数から見た `this` を決定するための通常のルール](/ja/docs/Web/JavaScript/Reference/Operators/this)に応じて決まります。 @@ -92,12 +62,12 @@ forEach(function (value, key, set) { ```js function logSetElements(value1, value2, set) { - console.log("s[" + value1 + "] = " + value2); + console.log(`s[${value1}] = ${value2}`); } new Set(["foo", "bar", undefined]).forEach(logSetElements); -// logs: +// Logs: // "s[foo] = foo" // "s[bar] = bar" // "s[undefined] = undefined" From ad6088508f7b4de06e138f376bb178b9b1a3add7 Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Mon, 18 Sep 2023 01:28:02 +0900 Subject: [PATCH 09/43] =?UTF-8?q?2023/08/09=20=E6=99=82=E7=82=B9=E3=81=AE?= =?UTF-8?q?=E8=8B=B1=E8=AA=9E=E7=89=88=E3=81=AB=E5=90=8C=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reference/global_objects/set/add/index.md | 10 ++++--- .../reference/global_objects/set/has/index.md | 28 ++++++++++--------- 2 files changed, 21 insertions(+), 17 deletions(-) diff --git a/files/ja/web/javascript/reference/global_objects/set/add/index.md b/files/ja/web/javascript/reference/global_objects/set/add/index.md index ddc007d9f33363..339759e8f0777e 100644 --- a/files/ja/web/javascript/reference/global_objects/set/add/index.md +++ b/files/ja/web/javascript/reference/global_objects/set/add/index.md @@ -1,18 +1,20 @@ --- title: Set.prototype.add() slug: Web/JavaScript/Reference/Global_Objects/Set/add +l10n: + sourceCommit: 5e878acadb7afcf0443b619b1d2f70a4dfafd679 --- {{JSRef}} -**`add()`** メソッドは `Set` 内に同じ値を持つ要素がない場合、指定した値を持つ新しい要素を `Set` オブジェクトの末尾に追加します。 +**`add()`** は {{jsxref("Set")}} インスタンスのメソッドで、この集合に同じ値を持つ要素がない場合、指定した値を持つ新しい要素をこの集合に追加します。 {{EmbedInteractiveExample("pages/js/set-prototype-add.html")}} ## 構文 -```js -add(value); +```js-nolint +add(value) ``` ### 引数 @@ -29,7 +31,7 @@ add(value); ### add() メソッドの使用 ```js -var mySet = new Set(); +const mySet = new Set(); mySet.add(1); mySet.add(5).add("some text"); // 連鎖可能 diff --git a/files/ja/web/javascript/reference/global_objects/set/has/index.md b/files/ja/web/javascript/reference/global_objects/set/has/index.md index 0100a84cdec62d..7ed9b1241ff828 100644 --- a/files/ja/web/javascript/reference/global_objects/set/has/index.md +++ b/files/ja/web/javascript/reference/global_objects/set/has/index.md @@ -1,47 +1,49 @@ --- title: Set.prototype.has() slug: Web/JavaScript/Reference/Global_Objects/Set/has +l10n: + sourceCommit: 5e878acadb7afcf0443b619b1d2f70a4dfafd679 --- {{JSRef}} -**`has()`** メソッドは、特定の値をもつ要素が `Set` オブジェクト内に存在するかどうかを示す論理値を返します。 +**`has()`** は {{jsxref("Set")}} インターフェイスのメソッドで、指定された値をもつ要素がこの集合内に存在するかどうかを示す論理値を返します。 {{EmbedInteractiveExample("pages/js/set-prototype-has.html")}} ## 構文 -```js -has(value); +```js-nolint +has(value) ``` ### 引数 - `value` - - : `Set` オブジェクトに存在するか検査する値です。 + - : この `Set` オブジェクトに存在するかを検査する値です。 ### 返値 -`Set` オブジェクト内に特定の値をもつ要素が存在していたら `true` を返します。さもなければ `false` を返します。 +この `Set` オブジェクト内に指定された値をもつ要素が存在していたら `true` を返します。さもなければ `false` を返します。 ## 例 ### has() メソッドの使用 ```js -var mySet = new Set(); +const mySet = new Set(); mySet.add("foo"); -mySet.has("foo"); // returns true -mySet.has("bar"); // returns false +console.log(mySet.has("foo")); // true +console.log(mySet.has("bar")); // false -var set1 = new Set(); -var obj1 = { key1: 1 }; +const set1 = new Set(); +const obj1 = { key1: 1 }; set1.add(obj1); -set1.has(obj1); // returns true -set1.has({ key1: 1 }); // オブジェクト参照が異なるため false を返す -set1.add({ key1: 1 }); // set1 には 2 つの項目が含まれるようになる +console.log(set1.has(obj1)); // true +console.log(set1.has({ key1: 1 })); // オブジェクト参照が異なるため false を返す +console.log(set1.add({ key1: 1 })); // set1 には 2 つの項目が含まれるようになる ``` ## 仕様書 From 04cb139a7f010fe1c56bb878571f5a97011d79dd Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Mon, 18 Sep 2023 02:21:20 +0900 Subject: [PATCH 10/43] Update files/ja/web/javascript/reference/global_objects/set/foreach/index.md Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .../web/javascript/reference/global_objects/set/foreach/index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/files/ja/web/javascript/reference/global_objects/set/foreach/index.md b/files/ja/web/javascript/reference/global_objects/set/foreach/index.md index d9f5fa5bf99a26..71edb4b841095b 100644 --- a/files/ja/web/javascript/reference/global_objects/set/foreach/index.md +++ b/files/ja/web/javascript/reference/global_objects/set/foreach/index.md @@ -21,6 +21,7 @@ forEach(callbackFn, thisArg) ### 引数 - `callback` + - : この集合のそれぞれの項目に対して実行する関数です。この関数は次の引数で呼び出されます。 - `value` From 88211ffb0fddd79714f5da0de0f8b8df54677719 Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Mon, 18 Sep 2023 02:21:27 +0900 Subject: [PATCH 11/43] Update files/ja/web/javascript/reference/global_objects/set/foreach/index.md Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .../web/javascript/reference/global_objects/set/foreach/index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/files/ja/web/javascript/reference/global_objects/set/foreach/index.md b/files/ja/web/javascript/reference/global_objects/set/foreach/index.md index 71edb4b841095b..7b2441061d4a8d 100644 --- a/files/ja/web/javascript/reference/global_objects/set/foreach/index.md +++ b/files/ja/web/javascript/reference/global_objects/set/foreach/index.md @@ -30,6 +30,7 @@ forEach(callbackFn, thisArg) - : それぞれの反復処理のキーです。これは常に `value` と同じです。 - `set` - : 反復処理が行われる集合です。 + - `thisArg` {{optional_inline}} - : `callbackFn` を実行するときn、`this` として使用する値です。 From b31caac007b551621838c73740a5fc90333be1a8 Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Mon, 18 Sep 2023 02:41:48 +0900 Subject: [PATCH 12/43] =?UTF-8?q?Web/Guide/HTML/Using=5FHTML=5Fsections=5F?= =?UTF-8?q?and=5Foutlines=20=E3=82=92=E5=89=8A=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- files/ja/_redirects.txt | 8 +- files/ja/_wikihistory.json | 19 -- .../using_html_sections_and_outlines/index.md | 289 ------------------ .../aria/roles/search_role/index.md | 2 +- 4 files changed, 5 insertions(+), 313 deletions(-) delete mode 100644 files/ja/orphaned/web/guide/html/using_html_sections_and_outlines/index.md diff --git a/files/ja/_redirects.txt b/files/ja/_redirects.txt index 31e8a42b430f71..c8d1a1eac886f1 100644 --- a/files/ja/_redirects.txt +++ b/files/ja/_redirects.txt @@ -1535,7 +1535,7 @@ /ja/docs/HTML/HTML_Elements/title /ja/docs/Web/HTML/Element/title /ja/docs/HTML/HTML_Elements/var /ja/docs/Web/HTML/Element/var /ja/docs/HTML/Introduction /ja/docs/Learn/HTML/Introduction_to_HTML -/ja/docs/HTML/Sections_and_Outlines_of_an_HTML5_document /ja/docs/orphaned/Web/Guide/HTML/Using_HTML_sections_and_outlines +/ja/docs/HTML/Sections_and_Outlines_of_an_HTML5_document /ja/docs/Web/HTML/Element/Heading_Elements /ja/docs/HTML/Supported_media_formats /ja/docs/Web/Media/Formats /ja/docs/HTML/Using_HTML5_audio_and_video /ja/docs/Learn/HTML/Multimedia_and_embedding/Video_and_audio_content /ja/docs/HTML/属性 /ja/docs/Web/HTML/Attributes @@ -2361,7 +2361,7 @@ /ja/docs/SVG_Namespace_Tips_(external) /ja/docs/Web/SVG/Namespaces_Crash_Course /ja/docs/SVG_improvements_in_Firefox_3 /ja/docs/Mozilla/Firefox/Releases/3/SVG_improvements /ja/docs/Same_origin_policy_for_JavaScript /ja/docs/Web/Security/Same-origin_policy -/ja/docs/Sections_and_Outlines_of_an_HTML5_document /ja/docs/orphaned/Web/Guide/HTML/Using_HTML_sections_and_outlines +/ja/docs/Sections_and_Outlines_of_an_HTML5_document /ja/docs/Web/HTML/Element/Heading_Elements /ja/docs/Security/CSP /ja/docs/Web/HTTP/CSP /ja/docs/Security/CSP/CSP_policy_directives /ja/docs/Web/HTTP/Headers/Content-Security-Policy /ja/docs/Security/CSP/Default_CSP_restrictions /ja/docs/Web/HTTP/Headers/Content-Security-Policy @@ -3925,7 +3925,7 @@ /ja/docs/Web/Guide/HTML/HTML5/HTML5_のフォーム /ja/docs/Learn/Forms /ja/docs/Web/Guide/HTML/Introduction /ja/docs/Learn/HTML/Introduction_to_HTML /ja/docs/Web/Guide/HTML/Obsolete_things_to_avoid /ja/docs/Learn/HTML/Introduction_to_HTML -/ja/docs/Web/Guide/HTML/Using_HTML_sections_and_outlines /ja/docs/orphaned/Web/Guide/HTML/Using_HTML_sections_and_outlines +/ja/docs/Web/Guide/HTML/Using_HTML_sections_and_outlines /ja/docs/Web/HTML/Element/Heading_Elements /ja/docs/Web/Guide/HTML/XHTML /ja/docs/Glossary/XHTML /ja/docs/Web/Guide/Index /ja/docs/Web/Guide /ja/docs/Web/Guide/Localizations_and_character_encodings /ja/docs/orphaned/Web/Guide/Localizations_and_character_encodings @@ -4047,7 +4047,7 @@ /ja/docs/Web/HTML/Link_types/prerender /ja/docs/Web/HTML/Attributes/rel/prerender /ja/docs/Web/HTML/Optimizing_your_pages_for_speculative_parsing /ja/docs/Glossary/Speculative_parsing /ja/docs/Web/HTML/Preloading_content /ja/docs/Web/HTML/Attributes/rel/preload -/ja/docs/Web/HTML/Sections_and_Outlines_of_an_HTML5_document /ja/docs/orphaned/Web/Guide/HTML/Using_HTML_sections_and_outlines +/ja/docs/Web/HTML/Sections_and_Outlines_of_an_HTML5_document /ja/docs/Web/HTML/Element/Heading_Elements /ja/docs/Web/HTML/Supported_media_formats /ja/docs/Web/Media/Formats /ja/docs/Web/HTML/Using_HTML5_audio_and_video /ja/docs/Learn/HTML/Multimedia_and_embedding/Video_and_audio_content /ja/docs/Web/HTML/属性 /ja/docs/Web/HTML/Attributes diff --git a/files/ja/_wikihistory.json b/files/ja/_wikihistory.json index 23d088e12e3432..8295a78300bc36 100644 --- a/files/ja/_wikihistory.json +++ b/files/ja/_wikihistory.json @@ -30702,25 +30702,6 @@ "modified": "2019-03-23T23:03:34.917Z", "contributors": ["wtrfp"] }, - "orphaned/Web/Guide/HTML/Using_HTML_sections_and_outlines": { - "modified": "2020-08-09T13:53:14.893Z", - "contributors": [ - "mfuji09", - "taku-furuta", - "miyah-kun", - "8845musign", - "michi-h0623", - "SphinxKnight", - "webooker", - "yyss", - "ethertank", - "teoli", - "DavidWalsh", - "Potappo", - "saneyuki_s", - "kj" - ] - }, "orphaned/Web/Guide/Localizations_and_character_encodings": { "modified": "2020-09-18T02:40:01.125Z", "contributors": ["morinokami", "silverskyvicto"] diff --git a/files/ja/orphaned/web/guide/html/using_html_sections_and_outlines/index.md b/files/ja/orphaned/web/guide/html/using_html_sections_and_outlines/index.md deleted file mode 100644 index 25faff407833e7..00000000000000 --- a/files/ja/orphaned/web/guide/html/using_html_sections_and_outlines/index.md +++ /dev/null @@ -1,289 +0,0 @@ ---- -title: HTML のセクションとアウトラインの使用 -slug: orphaned/Web/Guide/HTML/Using_HTML_sections_and_outlines ---- - -{{HTMLSidebar}} - -> **警告:** ウェブブラウザーや支援技術の中で、提案されているアウトラインアルゴリズムを実装したものはありません。これは最終的な W3C の仕様書に含まれていません。したがって、[アウトライン](https://www.w3.org/TR/html5/sections.html#outline)アルゴリズムを、ユーザーに文書の構造を伝えるために*使用するべきではありません*。作者には、見出しの[順位](https://www.w3.org/TR/html5/sections.html#rank) ([`h1`](https://www.w3.org/TR/html5/sections.html#the-h1-h2-h3-h4-h5-and-h6-elements)-[`h6`](https://www.w3.org/TR/html5/sections.html#the-h1-h2-h3-h4-h5-and-h6-elements)) を使用して文書の構造を伝えることを推奨します。 - -HTML5 の仕様書では、文書の構造を整理するのに役立つ意味づけする区分化要素がいくつか導入されました。意味づけする区分化要素は、ブラウザーや読み上げアプリや音声アシスタントなど、ユーザーに代わって文書を解釈する他の技術に構造的な意味を伝えるために特別に設計されています。 - -意味づけする区分化要素は、文書内のより大規模な構造を明確にします。以前の版の HTML には、関連するコンテンツをグループ化するための一般的なメカニズムとして `
` 要素だけがあり、意味づけが限られていましたが、これらの要素は、これを強化するためのものです。例えば、 `