diff options
author | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 21:46:22 -0500 |
---|---|---|
committer | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 21:46:22 -0500 |
commit | a065e04d529da1d847b5062a12c46d916408bf32 (patch) | |
tree | fe0f8bcec1ff39a3c499a2708222dcf15224ff70 /files/ja/web/javascript/reference | |
parent | 218934fa2ed1c702a6d3923d2aa2cc6b43c48684 (diff) | |
download | translated-content-a065e04d529da1d847b5062a12c46d916408bf32.tar.gz translated-content-a065e04d529da1d847b5062a12c46d916408bf32.tar.bz2 translated-content-a065e04d529da1d847b5062a12c46d916408bf32.zip |
update based on https://github.com/mdn/yari/issues/2028
Diffstat (limited to 'files/ja/web/javascript/reference')
13 files changed, 0 insertions, 1271 deletions
diff --git a/files/ja/web/javascript/reference/functions/arguments/caller/index.html b/files/ja/web/javascript/reference/functions/arguments/caller/index.html deleted file mode 100644 index 3626d7644b..0000000000 --- a/files/ja/web/javascript/reference/functions/arguments/caller/index.html +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: caller -slug: Web/JavaScript/Reference/Functions/arguments/caller -translation_of: Archive/Web/JavaScript/arguments.caller ---- -<p> </p> - -<p>{{ Obsolete_header() }}</p> - -<p>{{ 英語版章題("Summary") }}</p> - -<h3 id=".E6.A6.82.E8.A6.81" name=".E6.A6.82.E8.A6.81">概要</h3> - -<p>現在実行している関数を呼び出した関数を示します。</p> - -<table class="fullwidth-table"> - <tbody> - <tr> - <td class="header" colspan="2"><a href="/Ja/Core_JavaScript_1.5_Reference/Functions/arguments" title="Ja/Core_JavaScript_1.5_Reference/Functions/arguments">arguments</a> のプロパティ</td> - </tr> - <tr> - <td>実装されたバージョン:</td> - <td>JavaScript 1.1, NES 2.0 - <p>JavaScript 1.3: 非推奨とする。<span class="comment">JavaScript ??: Removed</span></p> - </td> - </tr> - </tbody> -</table> - -<p>{{ 英語版章題("Description") }}</p> - -<h3 id=".E8.AA.AC.E6.98.8E" name=".E8.AA.AC.E6.98.8E">説明</h3> - -<p><strong><code>arguments.caller</code> はもはや使用されていません。</strong> 代わりに関数オブジェクトの非標準の {{jsxref("Function.caller")}} プロパティが使えます。詳細はその説明を参照してください。</p> - -<p><code>arguments.caller</code> プロパティは関数本体の中でのみ利用可能です。</p> - -<p>{{ 英語版章題("Examples") }}</p> - -<h3 id=".E4.BE.8B" name=".E4.BE.8B">例</h3> - -<p>次のコードは、関数の中で <code>arguments.caller</code> の値をチェックします。</p> - -<pre class="eval">function myFunc() { - if (arguments.caller == null) { - return ("The function was called from the top!"); - } else - return ("This function's caller was " + arguments.caller); -} -</pre> - -<p> </p> - -<p> </p> - -<p>{{ languages( { "en": "en/JavaScript/Reference/Functions_and_function_scope/arguments/caller", "fr": "fr/R\u00e9f\u00e9rence_de_JavaScript_1.5_Core/Fonctions/arguments/caller", "pl": "pl/Dokumentacja_j\u0119zyka_JavaScript_1.5/Funkcje/arguments/caller" } ) }}</p> diff --git a/files/ja/web/javascript/reference/global_objects/array/observe/index.html b/files/ja/web/javascript/reference/global_objects/array/observe/index.html deleted file mode 100644 index e480baf2e3..0000000000 --- a/files/ja/web/javascript/reference/global_objects/array/observe/index.html +++ /dev/null @@ -1,89 +0,0 @@ ---- -title: Array.observe() -slug: Web/JavaScript/Reference/Global_Objects/Array/observe -tags: - - Array - - JavaScript - - Method - - Obsolete -translation_of: Archive/Web/JavaScript/Array.observe ---- -<div>{{JSRef}} {{obsolete_header}}</div> - -<p><strong><code>Array.observe()</code></strong> メソッドは、配列への変更を非同期で監視するために使用されました。オブジェクト用の {{jsxref("Object.observe()")}} と似ています。変更内容は、発生した順番に時系列で提供されます。accept type list <code>["add", "update", "delete", "splice"]</code> で呼び出された <code>Object.observe()</code> と同等です。しかしながら、この API の使用は非推奨となり、ブラウザから削除されています。代わりに、一般的な {{jsxref("Proxy")}} オブジェクトを使用してください。</p> - -<h2 id="Syntax" name="Syntax">構文</h2> - -<pre class="syntaxbox">Array.observe(<var>arr</var>, <var>callback</var>)</pre> - -<h3 id="Parameters" name="Parameters">引数</h3> - -<dl> - <dt><code>arr</code></dt> - <dd>監視される配列。</dd> - <dt><code>callback</code></dt> - <dd>変更されるたびに毎回呼び出される関数。次の引数を持ちます: - <dl> - <dt><code>changes</code></dt> - <dd>変更されたオブジェクトの配列。変更オブジェクトのプロパティは次の通り: - <ul> - <li><strong><code>name</code></strong>: 変更されたプロパティの名前。</li> - <li><strong><code>object</code></strong>: 変更後の配列。</li> - <li><strong><code>type</code></strong>: 変更の種類を示す文字列。 <code>"add"</code>, <code>"update"</code>, <code>"delete"</code>, <code>"splice"</code> のいずれか一つ。</li> - <li><strong><code>oldValue</code></strong>: <code>"update"</code>, <code>"delete"</code> の場合のみ、変更前の値。</li> - <li><strong><code>index</code></strong>: <code>"splice"</code> の場合のみ。変更が発生したインデックス。</li> - <li><strong><code>removed</code></strong>: <code>"splice"</code> の場合のみ。取り除かれた要素の配列。</li> - <li><strong><code>addedCount</code></strong>: <code>"splice"</code> の場合のみ。追加された要素の数。</li> - </ul> - </dd> - </dl> - </dd> -</dl> - -<h2 id="Description" name="Description">説明</h2> - -<p><code>callback</code> 関数は、<code>arr</code> に変更が発生する度に呼ばれます。すべての変更が発生した順に配列として渡されます。</p> - -<div class="note"> -<p><a href="/docs/Web/JavaScript/Reference/Global_Objects/Array/pop"><code>Array.prototype.pop()</code></a> など、Array メソッド経由の変更は、<code>"splice"</code> 変更として報告されます。配列の長さが変更されないインデックスの割り当て変更は、<code>"update"</code> 変更として報告されます。</p> -</div> - -<h2 id="Examples" name="Examples">例</h2> - -<h3 id='="Logging_different_change_types"' name='="Logging_different_change_types"'>異なる変更のログを取る</h3> - -<pre class="brush: js">var arr = ['a', 'b', 'c']; - -Array.observe(arr, function(changes) { - console.log(changes); -}); - -arr[1] = 'B'; -// [{type: 'update', object: , name: '1', oldValue: 'b'}] - -arr[3] = 'd'; -// [{type: 'splice', object: , index: 3, removed: [], addedCount: 1}] - -arr.splice(1, 2, 'beta', 'gamma', 'delta'); -// [{type: 'splice', object: , index: 1, removed: ['B', 'c', 'd'], addedCount: 3}] -</pre> - -<h2 id="Specifications" name="Specifications">仕様</h2> - -<p><a href="https://github.com/arv/ecmascript-object-observe">Strawman proposal specification</a>.</p> - -<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザ実装状況</h2> - -<div> -<p>{{Compat("javascript.builtins.Array.observe")}}</p> -</div> - -<p> </p> - -<h2 id="See_also" name="See_also">関連情報</h2> - -<ul> - <li><a href="//stackoverflow.com/q/29269057/778272">Under what condition would Array.observe's “add” event trigger?</a></li> - <li>{{jsxref("Array.unobserve()")}} {{obsolete_inline}}</li> - <li>{{jsxref("Object.observe()")}} {{obsolete_inline}}</li> -</ul> diff --git a/files/ja/web/javascript/reference/global_objects/array/unobserve/index.html b/files/ja/web/javascript/reference/global_objects/array/unobserve/index.html deleted file mode 100644 index 1eafff5efa..0000000000 --- a/files/ja/web/javascript/reference/global_objects/array/unobserve/index.html +++ /dev/null @@ -1,134 +0,0 @@ ---- -title: Array.unobserve -slug: Web/JavaScript/Reference/Global_Objects/Array/unobserve -tags: - - Array - - JavaScript - - Method - - Obsolete -translation_of: Archive/Web/JavaScript/Array.unobserve ---- -<div>{{JSRef}} {{obsolete_header}}</div> - -<p>Array<strong>.unobserve()</strong>メソッドは、{{jsxref("Array.observe()")}} で設定された監視を削除するために使われていましたが、非推奨となりブラウザから削除されました。代わりに、一般的な {{jsxref("Proxy")}} オブジェクトを使用してください。</p> - -<h2 id="Syntax" name="Syntax">構文</h2> - -<pre class="syntaxbox">Array.unobserve(<var>arr</var>, <var>callback</var>)</pre> - -<h3 id="Parameters" name="Parameters">引数</h3> - -<dl> - <dt><code>arr</code></dt> - <dd>監視を停止する配列。</dd> - <dt><code>callback</code></dt> - <dd><strong>arr</strong> 配列の変更時に毎回呼び出されるのを停止するための、オブザーバへの参照。</dd> -</dl> - -<h2 id="Description" name="Description">説明</h2> - -<p>配列からオブザーバを削除するため、<code>Array.unobserve()</code> は {{jsxref("Array.observe()")}} の後に呼び出される必要があります。</p> - -<p>callback は関数への参照とすべきであり、匿名関数ではいけません。なぜなら、この参照は以前のオブザーバを解除するために使用されるからです。callback として匿名関数を使った <strong>Array.unobserve()</strong> の呼び出しは、オブザーバを削除できないので無意味です。</p> - -<h2 id="Examples" name="Examples">例</h2> - -<h3 id="Unobserving_an_array" name="Unobserving_an_array">配列の監視を削除</h3> - -<pre class="brush: js">var arr = [1, 2, 3]; - -var observer = function(changes) { - console.log(changes); -} - -Array.observe(arr, observer); - -arr.push(4); -// [{type: "splice", object: <arr>, index: 3, removed:[], addedCount: 1}] - -Array.unobserve(arr, observer); - -arr.pop(); -// callback は呼び出されなかった。</pre> - -<h3 id="Using_an_anonymous_function" name="Using_an_anonymous_function">匿名関数の使用</h3> - -<pre class="brush: js">var persons = ['Khalid', 'Ahmed', 'Mohammed']; - -Array.observe(persons, function (changes) { - console.log(changes); -}); - -persons.shift(); -// [{type: "splice", object: <arr>, index: 0, removed: [ "Khalid" ], addedCount: 0 }] - -Array.unobserve(persons, function (changes) { - console.log(changes); -}); - -persons.push('Abdullah'); -// [{type: "splice", object: <arr>, index: 2, removed: [], addedCount: 1 }] -// callback は常に呼び出される。 -</pre> - -<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザ実装状況</h2> - -<div>{{CompatibilityTable}}</div> - -<div id="compat-desktop"> -<table class="compat-table"> - <tbody> - <tr> - <th>機能</th> - <th>Chrome</th> - <th>Firefox (Gecko)</th> - <th>Internet Explorer</th> - <th>Opera</th> - <th>Safari</th> - </tr> - <tr> - <td>基本サポート</td> - <td>{{CompatChrome("36")}} [1]</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatOpera("23")}}</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> -</table> -</div> - -<div id="compat-mobile"> -<table class="compat-table"> - <tbody> - <tr> - <th>機能</th> - <th>Android</th> - <th>Chrome for Android</th> - <th>Firefox Mobile (Gecko)</th> - <th>IE Mobile</th> - <th>Opera Mobile</th> - <th>Safari Mobile</th> - </tr> - <tr> - <td>基本サポート</td> - <td>{{CompatNo}}</td> - <td>{{CompatChrome("36")}} [1]</td> - <td>{{CompatNo}}</td> - <td>{{CompatNo}}</td> - <td>{{CompatOpera("23")}}</td> - <td>{{CompatNo}}</td> - </tr> - </tbody> -</table> -</div> - -<p>[1] Chrome 49 で非推奨になりました。</p> - -<h2 id="See_also" name="See_also">関連情報</h2> - -<ul> - <li>{{jsxref("Array.observe()")}} {{obsolete_inline}}</li> - <li>{{jsxref("Object.observe()")}} {{obsolete_inline}}</li> - <li>{{jsxref("Object.unobserve()")}} {{obsolete_inline}}</li> -</ul> diff --git a/files/ja/web/javascript/reference/global_objects/arraybuffer/transfer/index.html b/files/ja/web/javascript/reference/global_objects/arraybuffer/transfer/index.html deleted file mode 100644 index 2070e902a4..0000000000 --- a/files/ja/web/javascript/reference/global_objects/arraybuffer/transfer/index.html +++ /dev/null @@ -1,126 +0,0 @@ ---- -title: ArrayBuffer.transfer() -slug: Web/JavaScript/Reference/Global_Objects/ArrayBuffer/transfer -tags: - - ArrayBuffer - - ECMAScript7 - - Experimental - - Expérimental(2) - - JavaScript - - Method - - Reference - - Référence(2) - - TypedArrays -translation_of: Archive/Web/JavaScript/ArrayBuffer.transfer ---- -<div>{{JSRef}} {{SeeCompatTable}}</div> - -<p>静的な <code><strong>ArrayBuffer.transfer()</strong></code> メソッドは、<code>oldBuffer</code> のデータから得られる内容の新しい <code>ArrayBuffer</code> を返し、<code>newByteLength</code> によって切断されるかゼロ拡張されます。<code>newByteLength</code> が <code>undefined</code> なら、<code>oldBuffer</code> の <code>byteLength</code> が使われます。この操作により <code>oldBuffer</code> はデタッチ状態のままになります。</p> - -<h2 id="Syntax" name="Syntax">構文</h2> - -<pre class="syntaxbox"><code>ArrayBuffer.transfer(oldBuffer [, newByteLength]);</code></pre> - -<h3 id="Parameters" name="Parameters">引数</h3> - -<dl> - <dt><code>oldBuffer</code></dt> - <dd>転送するための {{jsxref("ArrayBuffer")}} オブジェクト</dd> - <dt>newByteLength</dt> - <dd>新しい <code>ArrayBuffer</code> オブジェクトのバイト長</dd> -</dl> - -<h3 id="戻り値">戻り値</h3> - -<p>新しい <code>ArrayBuffer</code> オブジェクト。</p> - -<h2 id="説明">説明</h2> - -<p><code>ArrayBuffer.transfer()</code> メソッドによって、<code>ArrayBuffer</code> オブジェクトを成長し、デタッチできます。コピーなしで <code>ArrayBuffer</code> を成長される能力は大規模バッファに対してもっと早くなる利点を持っています。<code>ArrayBuffer</code> をデタッチする機能によって、基底メモリがリリースされるときを開発者が明示的に制御できます。これにより、すべての参照を削除し、ガベージコレクションを待たずに済みます。</p> - -<h2 id="例">例</h2> - -<pre class="brush: js">var buf1 = new ArrayBuffer(40); -new Int32Array(buf1)[0] = 42; - -var buf2 = ArrayBuffer.transfer(buf1, 80); -buf1.byteLength; // 0 -buf2.byteLength; // 80 -new Int32Array(buf2)[0]; // 42 - -var buf3 = ArrayBuffer.transfer(buf2, 0); -buf2.byteLength; // 0 -buf3.byteLength; // 0 -</pre> - -<h2 id="ポリフィル">ポリフィル</h2> - -<p>次のコードをスクリプトの先頭に挿入することで、transfer<font face="Consolas, Liberation Mono, Courier, monospace">()</font> の機能の大部分をネイティブにサポートしていない環境でも対処できるようになります。これはこの API と完全に同じではありませんが、この関数はある ArrayBuffer からそのほかの ArrayBuffer にデータを変換します。</p> - -<pre>if (!ArrayBuffer.transfer) { - ArrayBuffer.transfer = function(source, length) { - source = Object(source); - var dest = new ArrayBuffer(length); - if (!(source instanceof ArrayBuffer) || !(dest instanceof ArrayBuffer)) { - throw new TypeError('Source and destination must be ArrayBuffer instances'); - } - if (dest.byteLength >= source.byteLength) { - var nextOffset = 0; - var leftBytes = source.byteLength; - var wordSizes = [8, 4, 2, 1]; - wordSizes.forEach(function(_wordSize_) { - if (leftBytes >= _wordSize_) { - var done = transferWith(_wordSize_, source, dest, nextOffset, leftBytes); - nextOffset = done.nextOffset; - leftBytes = done.leftBytes; - } - }); - } - return dest; - function transferWith(wordSize, source, dest, nextOffset, leftBytes) { - var ViewClass = Uint8Array; - switch (wordSize) { - case 8: - ViewClass = Float64Array; - break; - case 4: - ViewClass = Float32Array; - break; - case 2: - ViewClass = Uint16Array; - break; - case 1: - ViewClass = Uint8Array; - break; - default: - ViewClass = Uint8Array; - break; - } - var view_source = new ViewClass(source, nextOffset, Math.trunc(leftBytes / wordSize)); - var view_dest = new ViewClass(dest, nextOffset, Math.trunc(leftBytes / wordSize)); - for (var i = 0; i < view_dest.length; i++) { - view_dest[i] = view_source[i]; - } - return { - nextOffset : view_source.byteOffset + view_source.byteLength, - leftBytes : source.byteLength - (view_source.byteOffset + view_source.byteLength) - } - } - }; -}</pre> - -<h2 id="仕様">仕様</h2> - -<p>いづれの現行仕様のドラフトにも含まれていませんが、ECMA-262 エディションの機能として<a href="https://gist.github.com/lukewagner/2735af7eea411e18cf20">提案</a><a href="https://esdiscuss.org/topic/sept-23-2014-meeting-notes">されました</a>。</p> - -<h2 id="ブラウザ実装状況">ブラウザ実装状況</h2> - - - -<p>{{Compat("javascript.builtins.ArrayBuffer.transfer")}}</p> - -<h2 id="関連情報">関連情報</h2> - -<ul> - <li><a href="/docs/Web/JavaScript/Typed_arrays" title="en/JavaScript typed arrays">JavaScript typed arrays</a></li> -</ul> diff --git a/files/ja/web/javascript/reference/global_objects/iterator/index.html b/files/ja/web/javascript/reference/global_objects/iterator/index.html deleted file mode 100644 index 3a641ff7d9..0000000000 --- a/files/ja/web/javascript/reference/global_objects/iterator/index.html +++ /dev/null @@ -1,95 +0,0 @@ ---- -title: Iterator -slug: Web/JavaScript/Reference/Global_Objects/Iterator -tags: - - Deprecated - - JavaScript - - Legacy Iterator - - Reference -translation_of: Archive/Web/Iterator ---- -<div>{{jsSidebar("Objects")}}</div> - -<div class="warning"><strong>非標準。</strong> <code><strong>Iterator</strong></code> 関数は SpiderMonkey固有の機能で、ある時点で削除されます。将来向きの用途に対して、<a href="/docs/Web/JavaScript/Reference/Statements/for...of" title="/docs/Web/JavaScript/Reference/Statements/for...of">for..of</a>ループと<a href="/docs/Web/JavaScript/Guide/The_Iterator_protocol">iterator protocol</a>を使用することを検討してください。</div> - -<h2 id="概要">概要</h2> - -<p>レガシーイテレータプロトコルを実装し、オブジェクトの列挙可能なプロパティに対して反復するオブジェクトを返します。</p> - -<h2 id="構文">構文</h2> - -<pre class="syntaxbox">Iterator(<var>object</var>, [keyOnly])</pre> - -<h3 id="引数">引数</h3> - -<dl> - <dt><code>object</code></dt> - <dd>プロパティを反復処理するオブジェクト。</dd> - <dt><code>keyOnly</code></dt> - <dd><code>keyOnly</code> が truthy な値である場合は、<code>Iterator.prototype.next</code> が <code>property_name</code> のみ返します。</dd> -</dl> - -<h2 id="説明">説明</h2> - -<p>使用方法の概要が<a href="/docs/JavaScript/Guide/Iterators_and_Generators" title="/docs/JavaScript/Guide/Iterators_and_Generators">Iterators and Generators</a>ページで提供されています。</p> - -<h2 id="メソッド">メソッド</h2> - -<dl> - <dt><code><strong>Iterator.prototype.next</strong></code></dt> - <dd><code>[property_name, property_value]</code>フォーマットで次のアイテムを返します。それ以上のアイテムが存在しない場合、<code><a href="/docs/Web/JavaScript/Reference/Global_Objects/StopIteration">StopIteration</a></code>をスローします。</dd> -</dl> - -<h2 id="例">例</h2> - -<h3 id="オブジェクトのプロパティを反復処理する">オブジェクトのプロパティを反復処理する</h3> - -<pre class="brush: js">var a = { - x: 10, - y: 20, -}; -var iter = Iterator(a); -console.log(iter.next()); // ["x", 10] -console.log(iter.next()); // ["y", 20] -console.log(iter.next()); // throws StopIteration -</pre> - -<h3 id="レガシーデストラクタfor-in文を使用してオブジェクトのプロパティを反復処理する">レガシーデストラクタ<code>for-in</code>文を使用してオブジェクトのプロパティを反復処理する</h3> - -<pre class="brush: js">var a = { - x: 10, - y: 20, -}; - -for (var [name, value] in Iterator(a)) { - console.log(name, value); // x 10 - // y 20 -} -</pre> - -<h3 id="for-ofとともにイテレータを使用する">for-ofとともにイテレータを使用する</h3> - -<pre class="brush: js">var a = { - x: 10, - y: 20, -}; - -for (var [name, value] of Iterator(a)) { // @@iterator is used - console.log(name, value); // x 10 - // y 20 -}</pre> - -<h2 id="仕様">仕様</h2> - -<p>非標準。すべての現在の仕様書でサポートされていません。</p> - -<h2 id="ブラウザ実装状況">ブラウザ実装状況</h2> - -<p>サポートされていません。バージョン 57 より前の Firefox でサポートしていました。</p> - -<h2 id="関連情報">関連情報</h2> - -<ul> - <li><a href="/docs/JavaScript/Guide/Iterators_and_Generators" title="/en-US/docs/JavaScript/Guide/Iterators_and_Generators">Iterators and Generators</a></li> - <li><code><a href="/docs/Web/JavaScript/Reference/Global_Objects/StopIteration">StopIteration</a></code></li> -</ul> diff --git a/files/ja/web/javascript/reference/global_objects/object/count/index.html b/files/ja/web/javascript/reference/global_objects/object/count/index.html deleted file mode 100644 index 62975242b6..0000000000 --- a/files/ja/web/javascript/reference/global_objects/object/count/index.html +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: Object.prototype.__count__ -slug: Web/JavaScript/Reference/Global_Objects/Object/count -tags: - - JavaScript - - Object - - Obsolute - - Property - - Prototype -translation_of: Archive/Web/JavaScript/Object.count ---- -<div>{{JSRef}}{{Non-standard_Header}}{{obsolete_header("gecko2")}}</div> - -<p><strong><code>__count__</code></strong> プロパティはオブジェクトの列挙可能なプロパティの数を保存するために使用されていましたが、削除されました。</p> - -<h2 id="Syntax" name="Syntax">構文</h2> - -<pre class="syntaxbox"><code><var>obj</var>.__count__</code></pre> - -<h2 id="Examples" name="Examples">例</h2> - -<pre class="brush: js">{ 1: 1 }.__count__ // 1 -[].__count__ // 0 -[1].__count__ // 1 -[1, /* hole */, 2, 3].__count__ // 3 -</pre> - -<h2 id="Specifications" name="Specifications">仕様書</h2> - -<p>どの仕様書でも定義されていません。</p> - -<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの対応</h2> - -<div> -<div class="hidden">このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 <a class="external" href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> をチェックアウトしてプルリクエストを送信してください。</div> - -<p>{{Compat("javascript.builtins.Object.count")}}</p> -</div> - -<h2 id="See_also" name="See_also">関連情報</h2> - -<ul> - <li><a class="external" href="http://whereswalden.com/2010/04/06/more-changes-coming-to-spidermonkey-the-magical-__count__-property-of-objects-is-being-removed/">[Blog post] More changes coming to SpiderMonkey: the magical __count__ property is being removed</a></li> -</ul> diff --git a/files/ja/web/javascript/reference/global_objects/parallelarray/index.html b/files/ja/web/javascript/reference/global_objects/parallelarray/index.html deleted file mode 100644 index 192b09e3f4..0000000000 --- a/files/ja/web/javascript/reference/global_objects/parallelarray/index.html +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: ParallelArray -slug: Web/JavaScript/Reference/Global_Objects/ParallelArray -tags: - - JavaScript - - Obsolete - - ParallelArray -translation_of: Archive/Web/ParallelArray ---- -<div> -<div>{{jsSidebar("Objects")}}{{obsolete_header}}</div> -</div> - -<div class="note">p><strong>ノート:</strong> このオブジェクトは Firefox 17 で実装され {{ Gecko(29) }} から削除されました。現在は Nightly チャネルでのみ ParallelJS (PJS) を使用可能です ({{ bug(944074) }})。</div> - -<p><strong>ParallelArray</strong> の目標は、ウェブアプリケーション上でデータ並列性を実現することです。ParallelArray 上で利用可能な高階関数は並列的に実行されます(ただし、並列的に実行できない場合は必要に応じて直列実行にフォールバックします)。並列実行性を保証したい場合には、Javascript の機能のうち、<a href="/en-US/docs/ParallelizableJavaScriptSubset" title="/en-US/docs/ParallelizableJavaScriptSubset">Firefox がサポートする並列可能なサブセット</a>のみを利用するようにすることが推奨されています。</p> - -<h2 id="構文">構文</h2> - -<pre class="syntaxbox">new ParallelArray() -new ParallelArray([element0, element1, ...]) -new ParallelArray(arrayLength, elementalFunction)</pre> - -<h2 id="ParallelArray_インスタンス"><code>ParallelArray</code> インスタンス</h2> - -<h3 id="プロパティ">プロパティ</h3> - -<dl> - <dt>length</dt> - <dd><code>ParallelArray</code>の要素の数</dd> -</dl> - -<h3 id="メソッド">メソッド</h3> - -<dl> - <dt>map</dt> - <dt>reduce</dt> - <dt>scan</dt> - <dt>scatter</dt> - <dt>filter</dt> - <dt>flatten</dt> - <dt>partition</dt> - <dt>get</dt> -</dl> - -<h2 id="例">例</h2> - -<h3 id="例_並列的に_map_処理を行う">例: 並列的に <code>map</code> 処理を行う</h3> - -<pre class="brush: js">var p = new ParallelArray([0, 1, 2, 3, 4]); -var m = p.map(function (v) { - return v + 1; -});</pre> - -<h2 id="参考文献">参考文献</h2> - -<ul> - <li><a href="http://wiki.ecmascript.org/doku.php?id=strawman:data_parallelism" title="http://wiki.ecmascript.org/doku.php?id=strawman:data_parallelism">Ecmascript ParallelArray strawman</a></li> -</ul> diff --git a/files/ja/web/javascript/reference/global_objects/stopiteration/index.html b/files/ja/web/javascript/reference/global_objects/stopiteration/index.html deleted file mode 100644 index 79972224a8..0000000000 --- a/files/ja/web/javascript/reference/global_objects/stopiteration/index.html +++ /dev/null @@ -1,66 +0,0 @@ ---- -title: StopIteration -slug: Web/JavaScript/Reference/Global_Objects/StopIteration -tags: - - JavaScript - - Legacy Iterator - - Non-standard - - Reference - - StopItaration -translation_of: Archive/Web/StopIteration ---- -<div>{{jsSidebar("Objects")}}</div> - -<div class="warning"><strong>非標準。</strong> <code><strong>StopIteration</strong></code> オブジェクトはSpiderMonkey特有の機能です。将来向きの用途に対して、<a href="/docs/Web/JavaScript/Reference/Statements/for...of" title="/docs/Web/JavaScript/Reference/Statements/for...of">for..of</a> ループと<a href="/docs/Web/JavaScript/Guide/The_Iterator_protocol">iterator protocol</a>を使用することを検討してください。</div> - -<h2 id="概要">概要</h2> - -<p><code><strong>StopIteration</strong></code> オブジェクトはレガシーイテレータプロトコルにおける反復の終了を通知するために使用します。</p> - -<h2 id="Syntax" name="Syntax">構文</h2> - -<pre class="syntaxbox">StopIteration</pre> - -<h2 id="説明">説明</h2> - -<p>使用法の概要は、<a href="/docs/JavaScript/Guide/Iterators_and_Generators" title="/docs/JavaScript/Guide/Iterators_and_Generators">Iterators and Generators</a> ページ上で利用可能です</p> - -<h2 id="例">例</h2> - -<p><code>StopIteration</code>は<a href="/docs/Web/JavaScript/Reference/Global_Objects/Iterator"><code>Iterator</code></a>によってスローされます。</p> - -<pre class="brush: js">var a = { - x: 10, - y: 20, -}; -var iter = Iterator(a); -console.log(iter.next()); // ["x", 10] -console.log(iter.next()); // ["y", 20] -console.log(iter.next()); // throws StopIteration -</pre> - -<p><code>StopIteration</code>をスローする。</p> - -<pre class="brush: js">function f() { - yield 1; - yield 2; - throw StopIteration; - yield 3; // this is not executed. -} - -for (var n in f()) { - console.log(n); // 1 - // 2 -} -</pre> - -<h2 id="仕様">仕様</h2> - -<p>非標準。すべての現在の標準仕様でサポートされていません。</p> - -<h2 id="関連情報">関連情報</h2> - -<ul> - <li><a href="/docs/JavaScript/Guide/Iterators_and_Generators" title="/en-US/docs/JavaScript/Guide/Iterators_and_Generators">Iterators and Generators</a></li> - <li><a href="/docs/Web/JavaScript/Reference/Global_Objects/Iterator">Iterator</a></li> -</ul> diff --git a/files/ja/web/javascript/reference/global_objects/string/quote/index.html b/files/ja/web/javascript/reference/global_objects/string/quote/index.html deleted file mode 100644 index 2a074faf32..0000000000 --- a/files/ja/web/javascript/reference/global_objects/string/quote/index.html +++ /dev/null @@ -1,75 +0,0 @@ ---- -title: String.prototype.quote() -slug: Web/JavaScript/Reference/Global_Objects/String/quote -tags: - - String - - String Methods -translation_of: Archive/Web/JavaScript/String.quote ---- -<div>{{JSRef}} {{obsolete_header("37")}} {{non-standard_header}}</div> - -<p>特殊文字をエスケープシーケンスで置換しダブル・クォーテーション(<code>"</code>)でラップした文字列のコピーを返します。</p> - -<h2 id="Syntax" name="Syntax">構文</h2> - -<pre class="syntaxbox"><code><em>str</em>.quote()</code></pre> - -<h3 id="Return_value">Return value</h3> - -<p>A new string representing the original string wrapped in double-quotes, with any special characters escaped.</p> - -<h2 id="Examples" name="Examples">例</h2> - -<p>In the table below thequote()method replaces any special characters and wraps the strings in double-quotes. Also note the third column where a wrapped {{jsxref("Global_Objects/eval", "eval()")}} evaluates the escape sequences again.</p> - -<table class="fullwidth-table" style="width: 100%;"> - <thead> - <tr> - <th class="header" scope="col"><code>str</code></th> - <th class="header" scope="col"><code>str.quote()</code></th> - <th class="header" scope="col"><code><a href="/ja/docs/JavaScript/Reference/Global_Objects/eval" title="JavaScript/Reference/Global_Objects/eval">eval</a>( str.quote() )</code></th> - </tr> - </thead> - <tbody> - <tr> - <td><code>Hello world!</code></td> - <td><code>"Hello world!"</code></td> - <td><code>Hello world!</code></td> - </tr> - <tr> - <td><code>Hello<br> - world!</code></td> - <td><code>"Hello\n\tworld!"</code></td> - <td><code>Hello<br> - world!</code></td> - </tr> - <tr> - <td><code>" \ — '</code></td> - <td><code>"\" \\ \u2014 '"</code></td> - <td><code>" \ — '</code></td> - </tr> - </tbody> -</table> - -<h2 id="仕様">仕様</h2> - -<p>Not part of any standard. Implemented in JavaScript 1.3.</p> - -<h2 id="ポリフィル">ポリフィル</h2> - -<pre class="syntaxbox"><code>if (!String.prototype.quote) - String.prototype.quote = function(){ - return JSON.stringify( this ); // since IE8 -</code> }</pre> - -<h2 id="ブラウザ互換性情報">ブラウザ互換性情報</h2> - -<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> - -<p>{{Compat("javascript.builtins.String.quote")}}</p> - -<h2 id="関連情報">関連情報</h2> - -<ul> - <li>{{jsxref("JSON.stringify()")}}</li> -</ul> diff --git a/files/ja/web/javascript/reference/operators/array_comprehensions/index.html b/files/ja/web/javascript/reference/operators/array_comprehensions/index.html deleted file mode 100644 index 814bdd9eb7..0000000000 --- a/files/ja/web/javascript/reference/operators/array_comprehensions/index.html +++ /dev/null @@ -1,198 +0,0 @@ ---- -title: 配列内包表記 -slug: Web/JavaScript/Reference/Operators/Array_comprehensions -tags: - - JavaScript - - Non-standard - - Operator - - Reference -translation_of: Archive/Web/JavaScript/Array_comprehensions ---- -<div class="warning"><strong>非標準。使用しないでください!</strong><br> -配列内包は非標準であり、Firefox 58 から削除されています。将来向きの用途には、{{jsxref("Array.prototype.map")}}、{{jsxref("Array.prototype.filter")}}、{{jsxref("Functions/Arrow_functions", "アロー関数", "", 1)}}、{{jsxref("Operators/Spread_operator", "スプレッド構文", "", 1)}} の使用を検討してください。</div> - -<div>{{jsSidebar("Operators")}}</div> - -<p><strong>array comprehension</strong> 構文は、既存のものに基づいている新しい配列をすばやく組み立てることができるJavaScriptの式でした。しかし、これは標準仕様や Firefox の実装から削除されました。使用しないでください!</p> - -<h2 id="構文">構文</h2> - -<pre class="syntaxbox">[for (x of iterable) x] -[for (x of iterable) if (condition) x] -[for (x of iterable) for (y of iterable) x + y] -</pre> - -<h2 id="説明">説明</h2> - -<p>配列の内包表記内で、下記の二種類のコンポーネントが許されています。:</p> - -<ul> - <li>{{jsxref("Statements/for...of", "for...of")}}</li> - <li>{{jsxref("Statements/if...else", "if")}}</li> -</ul> - -<p>for-of イテレーションは常に最初のコンポーネントです。複数のfor-of イテレーションは、ステートメントが許可されている場合。</p> - -<p>配列内包は以前、ECMAScript 2016 で標準化を提案されていました。これは別のものに基づいて新たな配列を構成するための手っ取り早い方法を提供します。配列内包は一般に、{{jsxref("Array.prototype.map", "map()")}} および {{jsxref("Array.prototype.filter", "filter()")}} を呼び出す代わりとして、あるいはそれら 2 つを結合する手段として用いることができます。</p> - -<p>次の配列内包は数値の配列を取り込んで、その各数値を 2 倍した値による新しい配列を作成します。</p> - -<pre class="brush: js">var numbers = [1, 2, 3, 4]; -var doubled = [for (i of numbers) i * 2]; -console.log(doubled); // logs 2,4,6,8 -</pre> - -<p>これは以下の {{jsxref("Array.prototype.map", "map()")}} による操作と同等です:</p> - -<pre class="brush: js">var doubled = numbers.map(i => i * 2); -</pre> - -<p>配列内包は、特定の式にマッチするアイテムの選択に用いることもできます。以下は、偶数だけを選択する内包です:</p> - -<pre class="brush: js">var numbers = [1, 2, 3, 21, 22, 30]; -var evens = [for (i of numbers) if (i % 2 === 0) i]; -console.log(evens); // logs 2,22,30 -</pre> - -<p>同じ目的で {{jsxref("Array.prototype.filter", "filter()")}} を用いることができます:</p> - -<pre class="brush: js">var evens = numbers.filter(i => i % 2 === 0); -</pre> - -<p>{{jsxref("Array.prototype.map", "map()")}} および {{jsxref("Array.prototype.filter", "filter()")}} 方式の操作を、ひとつの配列内包に統合することができます。以下は偶数だけをフィルタリングして、それらを 2 倍した値を含む配列を作成します:</p> - -<pre class="brush: js">var numbers = [1, 2, 3, 21, 22, 30]; -var doubledEvens = [for (i of numbers) if (i % 2 === 0) i * 2]; -console.log(doubledEvens); // logs 4,44,60 -</pre> - -<p>配列内包の角括弧は、スコープ目的の暗黙的なブロックをもたらします。新しい変数 (上記の例における i ) は、{{jsxref("Statements/let","let")}} を用いて宣言されたかのように扱われます。つまり、それらの変数は配列内包の外部で使用できません。</p> - -<p>配列内包の入力自体は、配列である必要はありません。<a href="/ja/docs/Web/JavaScript/Guide/Iterators_and_Generators" title="JavaScript/Guide/Iterators and Generators">イテレータおよびジェネレータ</a> も使用できます。</p> - -<p>文字列を入力とすることもできます。(配列状のオブジェクトにおいて) 前出の filter や map の動作を実現するには以下のようにします:</p> - -<pre class="brush: js">var str = 'abcdef'; -var consonantsOnlyStr = [for (c of str) if (!(/[aeiouAEIOU]/).test(c)) c].join(''); // 'bcdf' -var interpolatedZeros = [for (c of str) c + '0' ].join(''); // 'a0b0c0d0e0f0' -</pre> - -<p>繰り返しになりますが入力データの形式は維持されませんので、文字列へ戻すために {{jsxref("Array.prototype.join", "join()")}} を使用しなければなりません。</p> - -<h2 id="例">例</h2> - -<h3 id="簡単な配列の内包表記">簡単な配列の内包表記</h3> - -<pre class="brush:js">[for (i of [ 1, 2, 3 ]) i*i ]; -// [ 1, 4, 9 ] - -var abc = [ "A", "B", "C" ]; -[for (letters of abc) letters.toLowerCase()]; -// [ "a", "b", "c" ]</pre> - -<h3 id="if文で配列の内包表記">if文で配列の内包表記</h3> - -<pre class="brush: js">var years = [ 1954, 1974, 1990, 2006, 2010, 2014 ]; -[for (year of years) if (year > 2000) year]; -// [ 2006, 2010, 2014 ] -[for (year of years) if (year > 2000) if(year < 2010) year]; -// [ 2006], the same as below: -[for (year of years) if (year > 2000 && year < 2010) year]; -// [ 2006] -</pre> - -<h3 id="mapとfilterを比較する配列の内包表記"><code>map</code>と<code>filter</code>を比較する配列の内包表記</h3> - -<p>配列の内包表記構文を理解する簡単な方法は、Array {{jsxref("Array.map", "map")}}や{{jsxref("Array.filter", "filter")}}メソッドと比較することです。:</p> - -<pre class="brush: js">var numbers = [ 1, 2, 3 ]; - -numbers.map(function (i) { return i * i }); -numbers.map(i => i*i); -[for (i of numbers) i*i ]; -// all are [ 1, 4, 9 ] - -numbers.filter(function (i) { return i < 3 }); -numbers.filter(i => i < 3); -[for (i of numbers) if (i < 3) i]; -// all are [ 1, 2 ] -</pre> - -<h3 id="二つの配列の内包表記">二つの配列の内包表記</h3> - -<p>二つの配列で動作させるために二つのfor-ofイテレーションを使用する:</p> - -<pre class="brush: js">var numbers = [ 1, 2, 3 ]; -var letters = [ "a", "b", "c" ]; - -var cross = [for (i of numbers) for (j of letters) i+j]; -// [ "1a", "1b", "1c", "2a", "2b", "2c", "3a", "3b", "3c" ] - -var grid = [for (i of numbers) [for (j of letters) i+j]]; -// [ -// ["1a", "1b", "1c"], -// ["2a", "2b", "2c"], -// ["3a", "3b", "3c"] -// ] - -[for (i of numbers) if (i > 1) for (j of letters) if(j > "a") i+j] -// ["2b", "2c", "3b", "3c"], the same as below: - -[for (i of numbers) for (j of letters) if (i > 1) if(j > "a") i+j] -// ["2b", "2c", "3b", "3c"] - -[for (i of numbers) if (i > 1) [for (j of letters) if(j > "a") i+j]] -// [["2b", "2c"], ["3b", "3c"]], not the same as below: - -[for (i of numbers) [for (j of letters) if (i > 1) if(j > "a") i+j]] -// [[], ["2b", "2c"], ["3b", "3c"]] -</pre> - -<h2 id="Specifications" name="Specifications">仕様</h2> - -<p>最初は ECMAScript 2015 のドラフトでしたが、リビジョン 27 (2014 年 8 月) で取り除かれました。仕様セマンティクスのために ES2015 の古いリビジョンを参照してください。</p> - -<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザー実装状況</h2> - - - -<p>{{Compat("javascript.operators.array_comprehensions")}}</p> - -<h2 id="Differences_to_the_older_JS1.7JS1.8_comprehensions" name="Differences_to_the_older_JS1.7JS1.8_comprehensions">古い JS1.7/JS1.8 の内包表記との違い</h2> - -<div class="warning">JS1.7/JS1.8 の内包表記は、バージョン 46 で Gecko から削除しました ({{bug(1220564)}})。</div> - -<p><strong>古い内包表記の構文 (使用しないでください!):</strong></p> - -<pre class="brush: js example-bad">[X for (Y in Z)] -[X for each (Y in Z)] -[X for (Y of Z)] -</pre> - -<p>違い:</p> - -<ul> - <li>ESNext の内包表記は全体の内包表記のかわりに"for"ノードごとに1スコープを生成します。 - <ul> - <li>旧: <code>[()=>x for (x of [0, 1, 2])][1]() // 2</code></li> - <li>新: <code>[for (x of [0, 1, 2]) ()=>x][1]() // 1, each iteration creates a fresh binding for x. </code></li> - </ul> - </li> - <li>ESNext の内包表記は代入式のかわりに"for"で始まります。 - <ul> - <li>旧: <code>[i * 2 for (i of numbers)]</code></li> - <li>新: <code>[for (i of numbers) <code>i * 2</code>]</code></li> - </ul> - </li> - <li>ESNext の内包表記は複数の<code>if</code>と<code>for</code>コンポーネントを持ち得ます。</li> - <li>ESNext の内包表記は<code>{{jsxref("Statements/for...of", "for...of")}}</code>でのみ動作し、<code>{{jsxref("Statements/for...in", "for...in")}}</code>イテレーションで 動作しません。</li> -</ul> - -<p>コード更新の提案について、<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1220564#c42">Bug 1220564 のコメント 42</a> をご覧ください。</p> - -<h2 id="関連情報">関連情報</h2> - -<ul> - <li>{{jsxref("Statements/for...of", "for...of")}}</li> - <li>{{jsxref("Operators/Generator_comprehensions", "Generator comprehensions", "" ,1)}}</li> -</ul> diff --git a/files/ja/web/javascript/reference/operators/expression_closures/index.html b/files/ja/web/javascript/reference/operators/expression_closures/index.html deleted file mode 100644 index 6b0df0f858..0000000000 --- a/files/ja/web/javascript/reference/operators/expression_closures/index.html +++ /dev/null @@ -1,76 +0,0 @@ ---- -title: 式クロージャ -slug: Web/JavaScript/Reference/Operators/Expression_closures -tags: - - Functions - - JavaScript - - Reference -translation_of: Archive/Web/JavaScript/Expression_closures ---- -<div class="warning"><strong>非標準。使用しないでください!</strong><br> -式クロージャの構文は、非推奨とされた Firefox 固有の機能であり、Firefox Firefox 60 で削除されました。将来向きの用途には、<a href="/docs/Web/JavaScript/Reference/Functions/Arrow_functions">アロー関数</a> の使用を検討してください。</div> - -<div>{{jsSidebar("Operators")}}</div> - -<p>式クロージャは、単純な関数を書くための短縮された関数構文です。</p> - -<h2 id="構文">構文</h2> - -<pre class="syntaxbox">function [<em>name</em>]([<em>param1</em>[, <em>param2[</em>, ..., <em>paramN</em>]]]) - <em>expression</em> -</pre> - -<h3 id="引数">引数</h3> - -<dl> - <dt><code>name</code></dt> - <dd>関数名。関数が <em>匿名</em> の場合、省略できます。名前は関数本体だけのローカルです。</dd> - <dt><code>paramN</code></dt> - <dd>関数に渡される引数の名前。関数は、最大 255 個の引数を持つことができます。</dd> - <dt><code>expression</code></dt> - <dd>関数本体を構成する式。</dd> -</dl> - -<h2 id="説明">説明</h2> - -<p>これは、単純な関数を書くための短縮された関数構文にすぎません。典型的な <a class="external" href="http://en.wikipedia.org/wiki/Lambda_calculus#Lambda_calculus_and_programming_languages">Lambda 表記</a> に似た言語で書くためのものです。</p> - -<p>JavaScript 1.7 およびそれ以前:</p> - -<pre class="brush: js">function(x) { return x * x; }</pre> - -<p>JavaScript 1.8:</p> - -<pre class="brush: js">function(x) x * x</pre> - -<p>この構文により、中括弧と 'return' 文をなくします (それらは暗黙的に宣言されています)。構文が短くなること以外に、このようにコードを書くことへの付加的な利点はありません。</p> - -<h2 id="例">例</h2> - -<p>イベントリスナをバインドする短縮表現:</p> - -<pre class="brush: js">document.addEventListener("click", function() false, true); -</pre> - -<p>JavaScript 1.6 から、配列関数の一部でこの表記法を用います:</p> - -<pre class="brush: js">elems.some(function(elem) elem.type == "text"); -</pre> - -<h2 id="ブラウザの実装状況">ブラウザの実装状況</h2> - - - -<p>{{Compat("javascript.operators.expression_closures")}}</p> - -<h2 id="関連情報">関連情報</h2> - -<ul> - <li>{{jsxref("Functions_and_function_scope", "関数と関数のスコープ")}}</li> - <li>{{jsxref("Function")}}</li> - <li>{{jsxref("Statements/function", "function statement")}}</li> - <li>{{jsxref("Operators/function", "function expression")}}</li> - <li>{{jsxref("Statements/function*", "function* statement")}}</li> - <li>{{jsxref("Operators/function*", "function* expression")}}</li> - <li>{{jsxref("GeneratorFunction")}}</li> -</ul> diff --git a/files/ja/web/javascript/reference/operators/generator_comprehensions/index.html b/files/ja/web/javascript/reference/operators/generator_comprehensions/index.html deleted file mode 100644 index 250b8fad05..0000000000 --- a/files/ja/web/javascript/reference/operators/generator_comprehensions/index.html +++ /dev/null @@ -1,172 +0,0 @@ ---- -title: ジェネレータ内包表記 -slug: Web/JavaScript/Reference/Operators/Generator_comprehensions -tags: - - Iterator - - JavaScript - - Non-standard - - Reference -translation_of: Archive/Web/JavaScript/Generator_comprehensions ---- -<div class="warning"><strong>非標準。使用しないでください!</strong><br> -ジェネレーター内包は非標準であり、Firefox 58 から削除されています。将来向きの用途には {{jsxref("Statements/function*", "ジェネレーター", "", 1)}} の使用を検討してください。</div> - -<div>{{jsSidebar("Operators")}}</div> - -<p><strong>generator comprehension</strong> 構文はすぐに既存の反復可能なオブジェクトに基づいて新たなジェネレーター関数を組み立てることができる JavaScript の式でした。しかし、これは標準仕様や Firefox の実装から削除されました。使用しないでください!</p> - -<h2 id="構文">構文</h2> - -<pre class="syntaxbox">(for (x of iterable) x) -(for (x of iterable) if (condition) x) -(for (x of iterable) for (y of iterable) x + y) -</pre> - -<h2 id="説明">説明</h2> - -<p>ジェネレータ内包表記の中では、この2種類のコンポーネントが許可されています。:</p> - -<ul> - <li>{{jsxref("Statements/for...of", "for...of")}}</li> - <li>{{jsxref("Statements/if...else", "if")}}</li> -</ul> - -<p><code>for-of</code>イテレーションは常に最初のコンポーネントです。複数の<code>for-of</code> イテレーションまたはif文が許可されています。</p> - -<p>{{jsxref("Operators/Array_comprehensions","配列内包","","true")}} の重大な欠点は、メモリー内に新しい配列全体を構築してしまうことです。配列内包への入力自体が小さい配列であるときのオーバーヘッドは小さいのですが、入力が大きな配列や処理の多い (あるいは本当に無限の) ジェネレーターであるときの配列の新規作成は問題になる場合があります。</p> - -<p>ジェネレーターはアイテムを必要なときに要求に応じて算出するため、一連のデータの計算処理を軽減します。ジェネレーター内包は構文的に、配列内包とほとんど同じです。こちらは中括弧の代わりに丸括弧を使用して、配列を構築する代わりに、すぐには実行されないジェネレーターを作成します。これらは、ジェネレーター作成を簡略化した構文と考えることができます。</p> - -<p>整数の大規模な数列に対して反復処理を行うイテレーター <code>it</code> を想定します。数列の値を 2 倍にする反復処理を行う、新たなイテレーターを作成したいとします。配列内包では、2 倍の値を含むのに十分な配列をメモリー内に作成します:</p> - -<pre class="brush: js">var doubles = [for (i in it) i * 2]; -</pre> - -<p>一方ジェネレーター内包は、必要なときに要求に応じて 2 倍の値を生成するイテレーターを作成します:</p> - -<pre class="brush: js">var it2 = (for (i in it) i * 2); -console.log(it2.next()); // The first value from it, doubled -console.log(it2.next()); // The second value from it, doubled -</pre> - -<p>ジェネレーター内包が関数の引数として使用されるときは、関数の呼び出しで使用される丸括弧によりジェネレーター内包の外側の丸括弧を省略できます:</p> - -<pre class="brush: js">var result = doSomething(for (i in it) i * 2); -</pre> - -<p>2 つの例の大きな違いは、ジェネレーター内包を使用すると 'obj' 構造を合計 1 回しかループする必要がないのと対照的に、配列内包ではイテレートの際に再びループすることです。</p> - -<h2 id="例">例</h2> - -<h3 id="簡単なジェネレータ内包表記">簡単なジェネレータ内包表記</h3> - -<pre class="brush:js">(for (i of [ 1, 2, 3 ]) i*i ); -// generator function which yields 1, 4, and 9 - -[...(for (i of [ 1, 2, 3 ]) i*i )]; -// [1, 4, 9] - -var abc = [ "A", "B", "C" ]; -(for (letters of abc) letters.toLowerCase()); -// generator function which yields "a", "b", and "c" -</pre> - -<h3 id="if文と用いたジェネレータ内包表記">if文と用いたジェネレータ内包表記</h3> - -<pre class="brush: js">var years = [ 1954, 1974, 1990, 2006, 2010, 2014 ]; - -(for (year of years) if (year > 2000) year); -// generator function which yields 2006, 2010, and 2014 - -(for (year of years) if (year > 2000) if(year < 2010) year); -// generator function which yields 2006, the same as below: - -(for (year of years) if (year > 2000 && year < 2010) year); -// generator function which yields 2006 -</pre> - -<h3 id="ジェネレータ関数と比較したジェネレータ内包表記">ジェネレータ関数と比較したジェネレータ内包表記</h3> - -<p>ジェネレータ内包表記構文を理解する簡単な方法はジェネレータ関数と比較することです。</p> - -<p>例 1: 簡単なジェネレータ</p> - -<pre class="brush: js">var numbers = [ 1, 2, 3 ]; - -// Generator function -(function*() { - for (let i of numbers) { - yield i * i; - } -})() - -// Generator comprehension -(for (i of numbers) i*i ); - -// Result: both return a generator which yields [ 1, 4, 9 ] -</pre> - -<p>例 2: ジェネレータ内で<code>if</code>を使用する</p> - -<pre class="brush: js">var numbers = [ 1, 2, 3 ]; - -// Generator function -(function*() { - for (let i of numbers) { - if (i < 3) { - yield i * 1; - } - } -})() - -// Generator comprehension -(for (i of numbers) if (i < 3) i); - -// Result: both return a generator which yields [ 1, 2 ]</pre> - -<h2 id="Specifications" name="Specifications">仕様</h2> - -<p>ジェネレーター内包は、ECMAScript 2015 で初期化されましたが、リビジョン 27 (2014 年 8 月) で取り除かれました。仕様セマンティクスについて、ES2015 の古いリビジョンをご覧ください。</p> - -<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザー実装状況</h2> - - - -<p>{{Compat("javascript.operators.generator_comprehensions")}}</p> - -<h2 id="Differences_to_the_older_JS1.7JS1.8_comprehensions" name="Differences_to_the_older_JS1.7JS1.8_comprehensions">古い JS1.7/JS1.8 の内包表記との違い</h2> - -<div class="warning">JS1.7/JS1.8 の内包表記は、バージョン 46 で削除しました ({{bug(1220564)}})。</div> - -<p><strong>古い内包表記の構文 (使用しないでください!):</strong></p> - -<pre class="brush: js example-bad">(X for (Y in Z)) -(X for each (Y in Z)) -(X for (Y of Z)) -</pre> - -<p>違い:</p> - -<ul> - <li>ESNext の内包表記は全体のかわりに"for"ノードごとに1スコープを生成します。 - <ul> - <li>旧: <code>[...(()=>x for (x of [0, 1, 2]))][1]() // 2</code></li> - <li>新: <code>[...(for (x of [0, 1, 2]) ()=>x)][1]() // 1, each iteration creates a fresh binding for x. </code></li> - </ul> - </li> - <li>ESNext の内包表記は代入式のかわりに"for"で始まります。 - <ul> - <li>旧: <code>(i * 2 for (i of numbers))</code></li> - <li>新: <code>(for (i of numbers) <code>i * 2</code>)</code></li> - </ul> - </li> - <li>ESNext の内包表記は複数の<code>if</code>と<code>for</code>コンポーネントを持ちます。</li> - <li>ESNext の内包表記は<code>{{jsxref("Statements/for...of", "for...of")}}</code>でのみ動作し、<code>{{jsxref("Statements/for...in", "for...in")}}</code>イテレーションでは動作しません。</li> -</ul> - -<h2 id="関連情報">関連情報</h2> - -<ul> - <li>{{jsxref("Statements/for...of", "for...of")}}</li> - <li>{{jsxref("Operators/Array_comprehensions", "Array comprehensions")}}</li> -</ul> diff --git a/files/ja/web/javascript/reference/statements/for_each...in/index.html b/files/ja/web/javascript/reference/statements/for_each...in/index.html deleted file mode 100644 index 72df003bfb..0000000000 --- a/files/ja/web/javascript/reference/statements/for_each...in/index.html +++ /dev/null @@ -1,81 +0,0 @@ ---- -title: for each...in -slug: Web/JavaScript/Reference/Statements/for_each...in -tags: - - Deprecated - - E4X - - JavaScript - - Obsolete - - Statement -translation_of: Archive/Web/JavaScript/for_each...in ---- -<div>{{jsSidebar("Statements")}}</div> - -<div class="warning"> -<p><code>for each...in</code> 文は ECMA-357 (<a href="/ja/docs/Archive/Web/E4X" title="E4X">E4X</a>) の一部として廃止されました。E4X のサポートは削除されました。代替として、<a href="/ja/docs/Web/JavaScript/Reference/Statements/for...of">for...of</a> 文が推奨されます。<br> - <br> - <strong>Firefox は <code>for each...in</code> の使用に対して警告を表示します。また、Firefox 57 以降では動作しません。<br> - 移行のためのヘルプとして <a href="/ja/docs/Web/JavaScript/Reference/Errors/For-each-in_loops_are_deprecated">Warning: JavaScript 1.6's for-each-in loops are deprecated</a> をご覧ください。</strong></p> -</div> - -<p><code><strong>for each...in</strong></code><strong> 文</strong>は指定された変数を、オブジェクトの全プロパティの値に対して反復します。異なるそれぞれのプロパティに対し、指定された文が実行されます。</p> - -<h2 id=".E6.A7.8B.E6.96.87" name=".E6.A7.8B.E6.96.87">構文</h2> - -<pre class="syntaxbox">for each (<em>variable</em> in <em>object</em>) { - <em>statement</em> -}</pre> - -<dl> - <dt><code>variable</code></dt> - <dd>任意で <code>var</code> キーワードを用いて宣言された、プロパティの値に対して反復する変数。この変数はループにではなく、関数にローカルです。</dd> -</dl> - -<dl> - <dt><code>object</code></dt> - <dd>プロパティが反復されるオブジェクト。</dd> -</dl> - -<dl> - <dt><code>statement</code></dt> - <dd>各プロパティに対して実行する文。ループ内で複数の文を実行するには、それらの文をグループ化するために <a href="/ja/docs/Web/JavaScript/Reference/Statements/block">ブロック</a> 文 (<code>{ ... }</code>) を使ってください。</dd> -</dl> - -<h2 id=".E8.AA.AC.E6.98.8E" name=".E8.AA.AC.E6.98.8E">説明</h2> - -<p>ある組み込みプロパティに対しては反復されません。これらには、たとえば <code>String</code> の <code>indexOf</code> メソッドといった、オブジェクトのすべての組み込みメソッドが含まれます。しかしながら、すべてのユーザー定義プロパパティに対しては反復されます。</p> - -<h2 id=".E4.BE.8B" name=".E4.BE.8B">例</h2> - -<h3 id=".E4.BE.8B:_for_each...in_.E3.82.92.E4.BD.BF.E3.81.86" name=".E4.BE.8B:_for_each...in_.E3.82.92.E4.BD.BF.E3.81.86">例: <code>for each...in</code> を使う</h3> - -<p><strong>警告</strong>: このようなループを決して配列に使わないでください。オブジェクトにだけ使ってください。詳しくは <a href="/ja/docs/Web/JavaScript/Reference/Statements/for...in"><code>for...in</code></a> をご覧ください。</p> - -<p>次のスニペットはオブジェクトのプロパティに対して反復し、それらの合計を計算します:</p> - -<pre class="brush:js">var sum = 0; -var obj = {prop1: 5, prop2: 13, prop3: 8}; - -for each (var item in obj) { - sum += item; -} - -console.log(sum); // logs "26", which is 5+13+8</pre> - -<h2 id="Specifications" name="Specifications">仕様</h2> - -<p>現行の ECMA-262 仕様には含まれていません。JavaScript 1.6 で実装され、非推奨になりました。</p> - -<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザー実装状況</h2> - - - -<p>{{Compat("javascript.statements.for_each_in")}}</p> - -<h2 id=".E5.8F.82.E7.85.A7" name=".E5.8F.82.E7.85.A7">参照</h2> - -<ul> - <li><code><a href="/ja/docs/Web/JavaScript/Reference/Statements/for...in" title="JavaScript/Reference/Statements/for...in">for...in</a></code> - プロパティ<em>名</em> に対して反復する似たような文。</li> - <li><code><a href="/ja/docs/Web/JavaScript/Reference/Statements/for...of" title="JavaScript/Reference/Statements/for...of">for...of</a></code> - プロパティの<em>値</em>に対して反復しますが、一般的なオブジェクトではなく反復可能な型に対してのみ使用できる似たような文。</li> - <li><code><a href="/ja/docs/JavaScript/Reference/Statements/for" title="JavaScript/Reference/Statements/for">for</a></code></li> -</ul> |