aboutsummaryrefslogtreecommitdiff
path: root/files/ja/web/javascript
diff options
context:
space:
mode:
Diffstat (limited to 'files/ja/web/javascript')
-rw-r--r--files/ja/web/javascript/ecmascript_5_support_in_mozilla/index.html43
-rw-r--r--files/ja/web/javascript/ecmascript_6_support_in_mozilla/index.html276
-rw-r--r--files/ja/web/javascript/guide/liveconnect_overview/index.html799
-rw-r--r--files/ja/web/javascript/new_in_javascript/1.1/index.html74
-rw-r--r--files/ja/web/javascript/new_in_javascript/1.2/index.html92
-rw-r--r--files/ja/web/javascript/new_in_javascript/1.3/index.html153
-rw-r--r--files/ja/web/javascript/new_in_javascript/1.4/index.html28
-rw-r--r--files/ja/web/javascript/new_in_javascript/1.5/index.html42
-rw-r--r--files/ja/web/javascript/new_in_javascript/1.6/index.html79
-rw-r--r--files/ja/web/javascript/new_in_javascript/1.7/index.html558
-rw-r--r--files/ja/web/javascript/new_in_javascript/1.8.1/index.html34
-rw-r--r--files/ja/web/javascript/new_in_javascript/1.8.5/index.html143
-rw-r--r--files/ja/web/javascript/new_in_javascript/1.8/index.html123
-rw-r--r--files/ja/web/javascript/new_in_javascript/index.html78
-rw-r--r--files/ja/web/javascript/reference/functions/arguments/caller/index.html56
-rw-r--r--files/ja/web/javascript/reference/global_objects/array/observe/index.html89
-rw-r--r--files/ja/web/javascript/reference/global_objects/array/unobserve/index.html134
-rw-r--r--files/ja/web/javascript/reference/global_objects/arraybuffer/transfer/index.html126
-rw-r--r--files/ja/web/javascript/reference/global_objects/iterator/index.html95
-rw-r--r--files/ja/web/javascript/reference/global_objects/object/count/index.html44
-rw-r--r--files/ja/web/javascript/reference/global_objects/parallelarray/index.html59
-rw-r--r--files/ja/web/javascript/reference/global_objects/stopiteration/index.html66
-rw-r--r--files/ja/web/javascript/reference/global_objects/string/quote/index.html75
-rw-r--r--files/ja/web/javascript/reference/operators/array_comprehensions/index.html198
-rw-r--r--files/ja/web/javascript/reference/operators/expression_closures/index.html76
-rw-r--r--files/ja/web/javascript/reference/operators/generator_comprehensions/index.html172
-rw-r--r--files/ja/web/javascript/reference/statements/for_each...in/index.html81
-rw-r--r--files/ja/web/javascript/server-side_javascript/index.html11
28 files changed, 0 insertions, 3804 deletions
diff --git a/files/ja/web/javascript/ecmascript_5_support_in_mozilla/index.html b/files/ja/web/javascript/ecmascript_5_support_in_mozilla/index.html
deleted file mode 100644
index 9dfa1c7805..0000000000
--- a/files/ja/web/javascript/ecmascript_5_support_in_mozilla/index.html
+++ /dev/null
@@ -1,43 +0,0 @@
----
-title: Mozilla における ECMAScript 5 のサポート
-slug: Web/JavaScript/ECMAScript_5_support_in_Mozilla
-tags:
- - ECMAScript5
- - JavaScript
-translation_of: Archive/Web/JavaScript/New_in_JavaScript/ECMAScript_5_support_in_Mozilla
----
-<p>{{jsSidebar("New_in_JS")}}</p>
-
-<p>ECMAScript 5.1 は、JavaScript を元とした標準の最新版であり、2011年の6月に承認されました。</p>
-
-<p>Firefox や Thunderbird の両方に含まれており、Mozilla プロジェクトで使用されている JavaScript ランタイムでは、 ECMAScript 5.1 の機能が完全にサポートされています。この記事では、Mozilla の JavaScript ランタイムの異なるバージョン毎にサポートされている機能について取り扱います。</p>
-
-<h2 id="Supported_features" name="Supported_features">すでにサポートされている機能</h2>
-
-<h3 id="Added_in_JavaScript_1.8.5_(Gecko_2.2C_Firefox_4_and_later)" name="Added_in_JavaScript_1.8.5_(Gecko_2.2C_Firefox_4_and_later)">JavaScript 1.8.5 (Gecko 2, Firefox 4) で追加された機能</h3>
-
-<p>Firefox 4 では、<code>Object.*</code> に追加されたメソッドおよび strict mode が完全にサポートされています。<a href="/ja/docs/JavaScript/New_in_JavaScript/1.8.5" title="JavaScript/New in JavaScript/1.8.5">New in JavaScript 1.8.5</a> を参照してください。</p>
-
-<h3 id="Added_in_JavaScript_1.8.1_(Gecko_1.9.1.2C_Firefox_3.5)" name="Added_in_JavaScript_1.8.1_(Gecko_1.9.1.2C_Firefox_3.5)">JavaScript 1.8.1 (Gecko 1.9.1, Firefox 3.5) で追加された機能</h3>
-
-<ul>
- <li><a class="internal" href="/ja/docs/Using_native_JSON" title="Using native JSON">ネイティブ JSON</a> のサポート</li>
- <li><a class="internal" href="/ja/docs/JavaScript/Reference/Global_Objects/Object/GetPrototypeOf" title="JavaScript/Reference/Global Objects/Object/GetPrototypeOf"><code>Object.getPrototypeOf()</code></a>メソッドのサポート。</li>
- <li>文字列の両端の空白文字を切り調える <a class="internal" href="/ja/docs/JavaScript/Reference/Global_Objects/String/Trim" title="JavaScript/Reference/Global Objects/String/Trim"><code>String.trim()</code></a> メソッドのサポート。</li>
- <li>Gecko 1.9.1.4 でのアップデートにより、<a href="/ja/docs/Using_native_JSON#Converting_objects_into_JSON" title="Using native JSON#Converting objects into JSON"><code>JSON.stringify()</code></a> の実装は ECMAScript 5 仕様に準じるものになりました。</li>
-</ul>
-
-<p>ECMAScript 5 によるレイアウトの改良は、特定の状況下において、JavaScript のコードをXHTMLとして評価するのを妨げる解析アルゴリズムとなりました。</p>
-
-<h3 id="Added_in_JavaScript_1.6_(Gecko_1.8.2C_Firefox_1.5)" name="Added_in_JavaScript_1.6_(Gecko_1.8.2C_Firefox_1.5)">JavaScript 1.6 (Gecko 1.8, Firefox 1.5) で追加された機能</h3>
-
-<p><a class="internal" href="/ja/docs/JavaScript/New_in_JavaScript/1.6#Array_extras" title="New in JavaScript 1.6#Array extras">Array の拡張</a> -- JavaScript 1.6 より Javascript の一部として、配列操作の方法の幾らか改良を提供するメソッドが追加されています。現在、それらのメソッドは ECMAScript 5 の一部として標準化されています。</p>
-
-<h2 id="See_also" name="See_also">参考</h2>
-
-<ul>
- <li><a class="external" href="http://www.ecmascript.org/" title="http://www.ecmascript.org/">ECMAScript web site</a></li>
- <li><a class="external" href="http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf" title="http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf">ECMAScript 5.1 specification</a></li>
- <li>John Resig による <a class="external" href="http://ejohn.org/blog/objectgetprototypeof/" title="http://ejohn.org/blog/objectgetprototypeof/">Object.getPrototypeOf</a> についての投稿</li>
- <li>Michael J. Ryan による <a class="external" href="http://frugalcoder.us/post/2010/01/07/EcmaScript-5s-Date-Extensions.aspx" title="http://frugalcoder.us/post/2010/01/07/EcmaScript-5s-Date-Extensions.aspx">JavaScript における ECMAScript5 Dates</a> の実装について</li>
-</ul>
diff --git a/files/ja/web/javascript/ecmascript_6_support_in_mozilla/index.html b/files/ja/web/javascript/ecmascript_6_support_in_mozilla/index.html
deleted file mode 100644
index 191d95c3cc..0000000000
--- a/files/ja/web/javascript/ecmascript_6_support_in_mozilla/index.html
+++ /dev/null
@@ -1,276 +0,0 @@
----
-title: Mozilla における ECMAScript 6 のサポート
-slug: Web/JavaScript/ECMAScript_6_support_in_Mozilla
-tags:
- - ECMAScript6
- - JavaScript
-translation_of: Archive/Web/JavaScript/New_in_JavaScript/ECMAScript_2015_support_in_Mozilla
----
-<div>{{jsSidebar("New_in_JS")}}</div>
-
-<p>ECMAScript 2015 (第 6 版) は、ECMAScript 言語標準仕様の現行バージョンです。一般的に "ES6" として参照され、Firefox や他の Mozilla アプリケーションで使用されているエンジンの <a href="/docs/Mozilla/Projects/SpiderMonkey">SpiderMonkey</a> における <a href="/docs/Web/JavaScript">JavaScript</a> 実装のための標準仕様を定義しています。</p>
-
-<p>"ES.next" または "harmony" のコードネームで呼称され、<a href="/docs/Web/JavaScript/New_in_JavaScript/ECMAScript_5_support_in_Mozilla">ECMAScript 5.1</a> を基にした最初のワーキングドラフトは、2011 年 7 月 12 日に "ES.next" として公開されました。2014 年 8 月に ECMAScript 6 仕様草案の機能追加が凍結され安定化とバグ修正の期間に入りました。最終的に、ECMA General Assembly によって ECMA-262 Edition 6 が公式に承認され、2015 年 6 月 17 日に標準仕様として発行されました。これは、国際工業規格の ISO/IEC 16262:2016 としても発行されます。</p>
-
-<p>標準仕様の <a href="http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf">PDF</a> および <a href="http://www.ecma-international.org/ecma-262/6.0/index.html">HTML</a> バージョンが <a href="http://www.ecma-international.org/publications/standards/Ecma-262.htm">ecma-international.org サイトで無料ダウンロード</a> できます。</p>
-
-<p>ECMAScript 標準仕様へのフィードバックチャンネルは <a href="https://mail.mozilla.org/listinfo/es-discuss">es-discuss</a> です。</p>
-
-<h2 id="Already_supported_features" name="Already_supported_features">Firefox で既にサポートされている機能</h2>
-
-<p>以下の機能は Firefox に実装済みです。 () 内のバージョンは、その機能のサポートが追加されたバージョンを示しています。</p>
-
-<h3 id="Standard_library" name="Standard_library">標準ライブラリ</h3>
-
-<h4 id="Additions_to_the_Array_object" name="Additions_to_the_Array_object"><code>Array</code> オブジェクトの追加機能</h4>
-
-<ul>
- <li><code>for...of</code> による {{jsxref("Array")}} のイテレーション (<a href="/Firefox/Releases/13">Firefox 13</a>)</li>
- <li>{{jsxref("Array.from()")}} (<a href="/Firefox/Releases/32">Firefox 32</a>)</li>
- <li>{{jsxref("Array.of()")}} (<a href="/Firefox/Releases/25">Firefox 25</a>)</li>
- <li>{{jsxref("Array.prototype.fill()")}} (<a href="/Firefox/Releases/31">Firefox 31</a>)</li>
- <li>{{jsxref("Array.prototype.find()")}}, {{jsxref("Array.prototype.findIndex()")}} (<a href="/Firefox/Releases/25">Firefox 25</a>)</li>
- <li>{{jsxref("Array.prototype.entries()")}},<br>
- {{jsxref("Array.prototype.keys()")}} (<a href="/Firefox/Releases/28">Firefox 28</a>)</li>
- <li>{{jsxref("Array.prototype.copyWithin()")}} (<a href="/Firefox/Releases/32">Firefox 32</a>)</li>
- <li>{{jsxref("Array.@@species", "get Array[@@species]")}} (<a href="/ja/Firefox/Releases/48">Firefox 48</a>)</li>
-</ul>
-
-<h4 id="New_Map_and_Set_objects_and_their_weak_counterparts" name="New_Map_and_Set_objects_and_their_weak_counterparts">新規オブジェクト <code>Map</code>、<code>Set</code>、 <code>WeakMap</code>、<code>WeakSet</code></h4>
-
-<ul>
- <li>{{jsxref("Map")}} (<a href="/Firefox/Releases/13">Firefox 13</a>)
-
- <ul>
- <li><code>for...of</code> による {{jsxref("Map")}} のイテレーション (<a href="/Firefox/Releases/17">Firefox 17</a>)</li>
- <li>{{jsxref("Map.prototype.forEach()")}} (<a href="/Firefox/Releases/25">Firefox 25</a>)</li>
- <li>{{jsxref("Map.prototype.entries()")}},<br>
- {{jsxref("Map.prototype.keys()")}},<br>
- {{jsxref("Map.prototype.values()")}} (<a href="/Firefox/Releases/20">Firefox 20</a>)</li>
- <li>コンストラクタの引数: <code>new {{jsxref("Map")}}(null)</code> (<a href="/Firefox/Releases/37">Firefox 37</a>)</li>
- <li>モンキーパッチを適用した <code>set()</code> をコンストラクタでサポート (<a href="/Firefox/Releases/37">Firefox 37</a>)</li>
- <li>{{jsxref("Map.@@species", "get Map[@@species]")}} (<a href="/Firefox/Releases/41">Firefox 41</a>)</li>
- </ul>
- </li>
- <li>{{jsxref("Set")}} (<a href="/Firefox/Releases/13">Firefox 13</a>)
- <ul>
- <li><code>for...of</code> による {{jsxref("Set")}} のイテレーション (<a href="/Firefox/Releases/17">Firefox 17</a>)</li>
- <li>{{jsxref("Set.prototype.forEach()")}} (<a href="/Firefox/Releases/25">Firefox 25</a>)</li>
- <li>{{jsxref("Set.prototype.entries()")}},<br>
- {{jsxref("Set.prototype.keys()")}},<br>
- {{jsxref("Set.prototype.values()")}} (<a href="/Firefox/Releases/24">Firefox 24</a>)</li>
- <li>コンストラクタの引数: <code>new {{jsxref("Set")}}(null)</code> (<a href="/Firefox/Releases/37">Firefox 37</a>)</li>
- <li>モンキーパッチを適用した <code>add()</code> をコンストラクタでサポート (<a href="/Firefox/Releases/37">Firefox 37</a>)</li>
- <li>{{jsxref("Set.@@species", "get Set[@@species]")}} (<a href="/Firefox/Releases/41">Firefox 41</a>)</li>
- </ul>
- </li>
- <li>{{jsxref("WeakMap")}} (<a href="/Firefox/Releases/6">Firefox 6</a>)
- <ul>
- <li>{{jsxref("WeakMap.clear()")}} (<a href="/Firefox/Releases/20">Firefox 20</a>)</li>
- <li>{{jsxref("WeakMap")}} コンストラクタの省略可能な引数 iterable (<a href="/Firefox/Releases/36">Firefox 36</a>)</li>
- <li>コンストラクタの引数: <code>new {{jsxref("WeakMap")}}(null)</code> (<a href="/Firefox/Releases/37">Firefox 37</a>)</li>
- <li>モンキーパッチを適用した <code>set()</code> をコンストラクタでサポート (<a href="/Firefox/Releases/37">Firefox 37</a>)</li>
- </ul>
- </li>
- <li>{{jsxref("WeakSet")}} (<a href="/Firefox/Releases/34">Firefox 34</a>)
- <ul>
- <li>コンストラクタの引数: <code>new {{jsxref("WeakSet")}}(null)</code> (<a href="/Firefox/Releases/37">Firefox 37</a>)</li>
- <li>モンキーパッチを適用した <code>add()</code> をコンストラクタでサポート (<a href="/Firefox/Releases/37">Firefox 37</a>)</li>
- </ul>
- </li>
-</ul>
-
-<h4 id="New_Math_functions" name="New_Math_functions"><code>Math</code> の新たな関数</h4>
-
-<ul>
- <li>{{jsxref("Math.imul()")}} (<a href="/Firefox/Releases/20">Firefox 20</a>)</li>
- <li>{{jsxref("Math.clz32()")}} (<a href="/Firefox/Releases/31">Firefox 31</a>)</li>
- <li>{{jsxref("Math.fround()")}} (<a href="/Firefox/Releases/26">Firefox 26</a>)</li>
- <li>{{jsxref("Math.log10()")}}, {{jsxref("Math.log2()")}}, {{jsxref("Math.log1p()")}}, {{jsxref("Math.expm1()")}}, {{jsxref("Math.cosh()")}}, {{jsxref("Math.sinh()")}}, {{jsxref("Math.tanh()")}}, {{jsxref("Math.acosh()")}}, {{jsxref("Math.asinh()")}}, {{jsxref("Math.atanh()")}}, {{jsxref("Math.hypot()")}}, {{jsxref("Math.trunc()")}}, {{jsxref("Math.sign()")}}, {{jsxref("Math.cbrt()")}} (<a href="/Firefox/Releases/25">Firefox 25</a>)</li>
-</ul>
-
-<h4 id="Additions_to_the_Number_object" name="Additions_to_the_Number_object"><code>Number</code> オブジェクトの新機能</h4>
-
-<ul>
- <li>{{jsxref("Number.isNaN()")}} (<a href="/Firefox/Releases/16">Firefox 16</a>)</li>
- <li>{{jsxref("Number.isFinite()")}} (<a href="/Firefox/Releases/16">Firefox 16</a>)</li>
- <li>{{jsxref("Number.isInteger()")}} (<a href="/Firefox/Releases/16">Firefox 16</a>)</li>
- <li>{{jsxref("Number.parseInt()")}} (<a href="/Firefox/Releases/25">Firefox 25</a>)</li>
- <li>{{jsxref("Number.parseFloat()")}} (<a href="/Firefox/Releases/25">Firefox 25</a>)</li>
- <li>{{jsxref("Number.EPSILON")}} (<a href="/Firefox/Releases/25">Firefox 25</a>)</li>
- <li>{{jsxref("Number.MAX_SAFE_INTEGER")}}, {{jsxref("Number.MIN_SAFE_INTEGER")}} (<a href="/Firefox/Releases/31">Firefox 31</a>)</li>
- <li>{{jsxref("Number.isSafeInteger()")}} (<a href="/Firefox/Releases/32">Firefox 32</a>)</li>
-</ul>
-
-<h4 id="Additions_to_the_Object_object" name="Additions_to_the_Object_object"><code>Object</code> オブジェクトの新機能</h4>
-
-<ul>
- <li>{{jsxref("Object.prototype.__proto__")}} が標準化されました</li>
- <li>{{jsxref("Object.is()")}} (<a href="/Firefox/Releases/22">Firefox 22</a>)</li>
- <li>{{jsxref("Object.setPrototypeOf()")}} (<a href="/Firefox/Releases/31">Firefox 31</a>)</li>
- <li>{{jsxref("Object.assign()")}} (<a href="/Firefox/Releases/34">Firefox 34</a>)</li>
- <li>{{jsxref("Object.getOwnPropertySymbols()")}} (<a href="/Firefox/Releases/33">Firefox 33</a>)</li>
-</ul>
-
-<h4 id="Additions_to_the_Date_object" name="Additions_to_the_Date_object"><code>Date</code> オブジェクトの新機能</h4>
-
-<ul>
- <li>{{jsxref("Date.prototype")}} は通常のオブジェクトです (<a href="/Firefox/Releases/41">Firefox 41</a>)</li>
- <li>generic {{jsxref("Date.prototype.toString")}} (<a href="/Firefox/Releases/41">Firefox 41</a>)</li>
- <li>{{jsxref("Date.prototype.@@toPrimitive", "Date.prototype[@@toPrimitive]")}} (<a href="/en-US/Firefox/Releases/44">Firefox 44</a>)</li>
-</ul>
-
-<h4 id="New_Promise_object" name="New_Promise_object">新オブジェクト <code>Promise</code></h4>
-
-<ul>
- <li>{{jsxref("Promise")}} (<a href="/Firefox/Releases/24">Firefox 24</a>、<a href="/Firefox/Releases/29">Firefox 29</a> から既定で有効)</li>
-</ul>
-
-<h4 id="新オブジェクト_Proxy">新オブジェクト <code>Proxy</code></h4>
-
-<ul>
- <li>{{jsxref("Proxy")}} (<a href="/ja/Firefox/Releases/18">Firefox 18</a>)</li>
- <li>{{jsxref("Global_Objects/Proxy/handler/preventExtensions", "preventExtensions()")}} トラップ (<a href="/ja/Firefox/Releases/22">Firefox 22</a>)</li>
- <li>{{jsxref("Global_Objects/Proxy/handler/isExtensible", "isExtensible()")}} トラップ (<a href="/ja/Firefox/Releases/31">Firefox 31</a>)</li>
- <li>{{jsxref("Global_Objects/Proxy/handler/getPrototypeOf", "getPrototypeOf()")}}, {{jsxref("Global_Objects/Proxy/handler/setPrototypeOf", "setPrototypeOf()")}} トラップ (<a href="/ja/Firefox/Releases/49">Firefox 49</a>)</li>
-</ul>
-
-<h4 id="Additions_to_the_RegExp_object" name="Additions_to_the_RegExp_object"><code>RegExp</code> オブジェクトの新機能</h4>
-
-<ul>
- <li>{{jsxref("RegExp")}} のスティッキーフラグ (y) (<a href="/ja/Firefox/Releases/38">Firefox 38</a>)</li>
- <li>generic {{jsxref("RegExp.prototype.toString")}} (<a href="/Firefox/Releases/39">Firefox 39</a>)</li>
- <li>{{jsxref("RegExp.prototype.@@match()", "RegExp.prototype[@@match]()")}} (<a href="/ja/Firefox/Releases/49">Firefox 49</a>)</li>
- <li>{{jsxref("RegExp.prototype.@@replace()", "RegExp.prototype[@@replace]()")}} (<a href="/ja/Firefox/Releases/49">Firefox 49</a>)</li>
- <li>{{jsxref("RegExp.prototype.@@search()", "RegExp.prototype[@@search]()")}} (<a href="/ja/Firefox/Releases/49">Firefox 49</a>)</li>
- <li>{{jsxref("RegExp.prototype.@@split()", "RegExp.prototype[@@split]()")}} (<a href="/ja/Firefox/Releases/49">Firefox 49</a>)</li>
- <li>{{jsxref("RegExp.@@species", "get RegExp[@@species]")}} (<a href="/ja/Firefox/Releases/49">Firefox 49</a>)</li>
-</ul>
-
-<h4 id="Additions_to_the_String_object" name="Additions_to_the_String_object"><code>String</code> オブジェクトの新機能</h4>
-
-<ul>
- <li>{{jsxref("String.fromCodePoint()")}} (<a href="/Firefox/Releases/29">Firefox 29</a>)</li>
- <li>{{jsxref("String.prototype.codePointAt()")}} (<a href="/Firefox/Releases/29">Firefox 29</a>)</li>
- <li>{{jsxref("String.prototype.startsWith()")}}, {{jsxref("String.prototype.endsWith()")}} (<a href="/Firefox/Releases/17">Firefox 17</a>)</li>
- <li>{{jsxref("String.prototype.includes()")}} (<a href="/Firefox/Releases/40">Firefox 40</a>) (formerly <code>String.prototype.contains()</code> (<a href="/Firefox/Releases/17">Firefox 17</a>))</li>
- <li>{{jsxref("String.prototype.repeat()")}} (<a href="/Firefox/Releases/24">Firefox 24</a>)</li>
- <li>{{jsxref("String.prototype.normalize()")}} (<a href="/Firefox/Releases/31">Firefox 31</a>)</li>
- <li>{{jsxref("String.raw()")}} (<a href="/Firefox/Releases/34">Firefox 34</a>)</li>
- <li>{{jsxref("Global_Objects/String", "u{XXXXXX} Unicode コードポイント", "", 1)}} (<a href="/Firefox/Releases/40">Firefox 40</a>)</li>
-</ul>
-
-<h4 id="New_Symbol_object" name="New_Symbol_object">新オブジェクト <code>Symbol</code></h4>
-
-<ul>
- <li>{{jsxref("Symbol")}} (<a href="/Firefox/Releases/36">Firefox 36</a>)</li>
- <li>{{jsxref("Symbol.iterator")}} (<a href="/Firefox/Releases/36">Firefox 36</a>)</li>
- <li>{{jsxref("Symbol.for()")}} - グローバル Symbol レジストリ (<a href="/Firefox/Releases/36">Firefox 36</a>)</li>
- <li>{{jsxref("Symbol.match")}} (<a href="/Firefox/Releases/40">Firefox 40</a>)</li>
- <li>{{jsxref("Symbol.species")}} (<a href="/Firefox/Releases/41">Firefox 41</a>)</li>
- <li>{{jsxref("Symbol.toPrimitive")}} (<a href="/ja/Firefox/Releases/44">Firefox 44</a>)</li>
- <li>{{jsxref("Symbol.prototype.@@toPrimitive", "Symbol.prototype[@@toPrimitive]")}} (<a href="/ja/Firefox/Releases/44">Firefox 44</a>)</li>
- <li>{{jsxref("Symbol.replace")}} (<a href="/ja/Firefox/Releases/49">Firefox 49</a>)</li>
- <li>{{jsxref("Symbol.search")}} (<a href="/ja/Firefox/Releases/49">Firefox 49</a>)</li>
- <li>{{jsxref("Symbol.split")}} (<a href="/ja/Firefox/Releases/49">Firefox 49</a>)</li>
- <li>{{jsxref("Symbol.hasInstance")}} (<a href="/ja/Firefox/Releases/50">Firefox 50</a>)</li>
-</ul>
-
-<h4 id="Typed_Arrays" name="Typed_Arrays">型付き配列</h4>
-
-<p>型付き配列は ECMAScript 6 の一部として規定され、<a href="https://www.khronos.org/registry/typedarray/specs/latest/">独自の仕様書</a>を持つものではなくなりました。</p>
-
-<ul>
- <li>{{jsxref("ArrayBuffer")}}</li>
- <li>{{jsxref("ArrayBuffer.@@species", "get ArrayBuffer[@@species]")}} (<a href="/ja/Firefox/Releases/48">Firefox 48</a>)</li>
- <li>{{jsxref("DataView")}}</li>
- <li>{{jsxref("Int8Array")}}</li>
- <li>{{jsxref("Uint8Array")}}</li>
- <li>{{jsxref("Uint8ClampedArray")}}</li>
- <li>{{jsxref("Int16Array")}}</li>
- <li>{{jsxref("Uint16Array")}}</li>
- <li>{{jsxref("Int32Array")}}</li>
- <li>{{jsxref("Uint32Array")}}</li>
- <li>{{jsxref("Float32Array")}}</li>
- <li>{{jsxref("Float64Array")}}</li>
- <li>{{jsxref("TypedArray.@@species", "get %TypedArray%[@@species]")}} (<a href="/ja/Firefox/Releases/48">Firefox 48</a>)</li>
-</ul>
-
-<h3 id="Expressions_and_operators" name="Expressions_and_operators">式と演算子</h3>
-
-<ul>
- <li><a href="/ja/docs/Web/JavaScript/Reference/Operators/new.target">new.target</a> (<a href="/ja/Firefox/Releases/41">Firefox 41</a>)</li>
- <li><a href="/docs/Web/JavaScript/Reference/Operators/Spread_operator">配列の Spread 演算子</a> (<a href="/Firefox/Releases/16">Firefox 16</a>)
- <ul>
- <li><code>Symbol.iterator</code> プロパティを使用 (<a href="/Firefox/Releases/36">Firefox 36</a>)</li>
- </ul>
- </li>
- <li><a href="/docs/Web/JavaScript/Reference/Operators/Spread_operator">関数呼び出しの Spread 演算子</a> (<a href="/Firefox/Releases/27">Firefox 27</a>)
- <ul>
- <li><code>Symbol.iterator</code> プロパティを使用 (<a href="/Firefox/Releases/36">Firefox 36</a>)</li>
- </ul>
- </li>
-</ul>
-
-<h3 id="Statements" name="Statements">文</h3>
-
-<ul>
- <li><a href="/docs/Web/JavaScript/Reference/Statements/for...of"><code>for...of</code></a> (<a href="/Firefox/Releases/13">Firefox 13</a>)
-
- <ul>
- <li><code>.iterator()</code> および <code>.next()</code> として動作 (<a href="/Firefox/Releases/17">Firefox 17</a>)</li>
- <li><code>"@@iterator"</code> プロパティを使用 (<a href="/Firefox/Releases/27">Firefox 27</a>)</li>
- <li><code>Symbol.iterator</code> プロパティを使用 (<a href="/Firefox/Releases/36">Firefox 36</a>)</li>
- </ul>
- </li>
-</ul>
-
-<h3 id="Functions" name="Functions">関数</h3>
-
-<ul>
- <li><a href="/docs/Web/JavaScript/Reference/Functions_and_function_scope/rest_parameters">レスト引数</a> (<a href="/Firefox/Releases/15">Firefox 15</a>)</li>
- <li><a href="/docs/Web/JavaScript/Reference/default_parameters">デフォルト引数</a> (<a href="/Firefox/Releases/15">Firefox 15</a>)
- <ul>
- <li>デフォルト引数の後のデフォルト値の無い引数 (<a href="/Firefox/Releases/26">Firefox 26</a>)</li>
- <li><a href="/docs/Web/JavaScript/Reference/Functions/Default_parameters#Destructured_parameter_with_default_value_assignment" title="Default function parameters allow formal parameters to be initialized with default values if no value or undefined is passed.">デフォルト引数の割り当てで破壊された引数</a> (<a href="/Firefox/Releases/41">Firefox 41</a>)</li>
- </ul>
- </li>
- <li><a href="/docs/Web/JavaScript/Reference/arrow_functions">アロー関数</a> (<a href="/Firefox/Releases/22">Firefox 22</a>)</li>
- <li>{{jsxref("Statements/function*", "Generator function")}} (<a href="/Firefox/Releases/26">Firefox 26</a>)
- <ul>
- <li>{{jsxref("Operators/yield", "yield")}} (<a href="/Firefox/Releases/26">Firefox 26</a>)</li>
- <li>{{jsxref("Operators/yield*", "yield*")}} (<a href="/Firefox/Releases/27">Firefox 27</a>)</li>
- <li>{{jsxref("Functions/arguments/@@iterator", "arguments[@@iterator]")}} (<a href="/ja/Firefox/Releases/46">Firefox 46</a>)</li>
- </ul>
- </li>
-</ul>
-
-<h3 id="Other_features" name="Other_features">その他の機能</h3>
-
-<ul>
- <li><a href="/docs/Web/JavaScript/Reference/Lexical_grammar#Numeric_literals">2 進数および 8 進数の整数リテラル</a> (<a href="/Firefox/Releases/25">Firefox 25</a>)</li>
- <li><a href="/docs/Web/JavaScript/Reference/template_strings">テンプレート文字列</a> (<a href="/Firefox/Releases/34">Firefox 34</a>)</li>
- <li><a href="/docs/Web/JavaScript/Reference/Operators/Object_initializer#Property_definitions">オブジェクト初期化子: プロパティ名の短縮記法</a> (<a href="/Firefox/Releases/33">Firefox 33</a>)</li>
- <li><a href="/docs/Web/JavaScript/Reference/Operators/Object_initializer#Computed_property_names">オブジェクト初期化子: 計算されたプロパティ名</a> (<a href="/Firefox/Releases/34">Firefox 34</a>)</li>
- <li><a href="/docs/Web/JavaScript/Reference/Operators/Object_initializer#Method_definitions">オブジェクト初期化子: メソッド名の短縮記法</a> (<a href="/Firefox/Releases/34">Firefox 34</a>)</li>
-</ul>
-
-<h2 id="Features_not_compliant_with_the_ES6_specification" name="Features_not_compliant_with_the_ES6_specification">ES6 仕様に従っていない機能</h2>
-
-<p>以下の機能は (部分的に) Firefox に実装されていますが、ES6 仕様に従っていない機能です。これらには、2 つの理由があります。Firefox の実装が ES6 仕様の古い草案を基にしているか、Firefox の現在の実装が、ES6 仕様に追加される前の似たような実験的な設計になっていることです。</p>
-
-<ul>
- <li><a href="/docs/Web/JavaScript/Guide/Iterators_and_Generators">旧来のイテレータとジェネレータ</a> (<a href="/docs/Web/JavaScript/New_in_JavaScript/1.7">JS 1.7</a>, <a href="/Firefox/Releases/2">Firefox 2</a>)</li>
- <li><a href="/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment">分割代入</a> (<a href="/docs/Web/JavaScript/New_in_JavaScript/1.7">JS 1.7</a>, <a href="/Firefox/Releases/2">Firefox 2</a>) (ES6 準拠は {{bug("1055984")}})</li>
- <li>{{jsxref("Statements/const", "const")}} (<a href="/docs/Web/JavaScript/New_in_JavaScript/1.5">JS 1.5</a>, Firefox 1.0) ( Firefox 51 で ES6 準拠 {{bug("950547")}})</li>
- <li>{{jsxref("Statements/let", "let")}} (<a href="/docs/Web/JavaScript/New_in_JavaScript/1.7">JS 1.7</a>, <a href="/Firefox/Releases/2">Firefox 2</a>) (Firefox 51 で ES6 準拠 {{bug("950547")}})</li>
-</ul>
-
-<h2 id="See_also" name="See_also">関連情報</h2>
-
-<ul>
- <li><a href="/ja/docs/Web/JavaScript/New_in_JavaScript/ECMAScript_7_support_in_Mozilla">Mozilla での ECMAScript 7 サポート</a></li>
- <li><a href="http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts">ECMAScript 6 仕様草案</a></li>
- <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=694100">Mozilla の ES6 に関するバグ追跡</a></li>
- <li><a href="https://kangax.github.io/compat-table/es6/" title="https://kangax.github.io/compat-table/es6/">各ブラウザの ECMAScript 6 サポート状況</a></li>
-</ul>
diff --git a/files/ja/web/javascript/guide/liveconnect_overview/index.html b/files/ja/web/javascript/guide/liveconnect_overview/index.html
deleted file mode 100644
index 4deeca4ad2..0000000000
--- a/files/ja/web/javascript/guide/liveconnect_overview/index.html
+++ /dev/null
@@ -1,799 +0,0 @@
----
-title: LiveConnect の概要
-slug: Web/JavaScript/Guide/LiveConnect_Overview
-tags:
- - Java
- - JavaScript
- - LiveConnect
-translation_of: Archive/Web/LiveConnect/LiveConnect_Overview
----
-<p>この章では、Java のコードと JavaScript のコードが相互通信を可能にする技術である <a href="/ja/docs/LiveConnect" title="ja/docs/LiveConnect">LiveConnect</a> の使用方法を解説します。この章の読者は、Java プログラミングの経験があるものとします。</p>
-
-<h2 id="Working_with_Wrappers" name="Working_with_Wrappers">ラッパの使用</h2>
-
-<p>JavaScript において、<em>ラッパ</em>とは元の言語のオブジェクトをくるんだ、ターゲットとする言語のデータ型のオブジェクトです。JavaScript でプログラミングをするときは、ラッパオブジェクトを用いることで Java のメソッドやフィールドにアクセスすることができます。つまり、ラッパのメソッドを呼び出したりプロパティにアクセスすることで、Java のオブジェクトにおいて呼び出すことになります。Java 側では JavaScript のオブジェクトがクラス <code>netscape.javascript.JSObject</code> のインスタンスでラップされ、Java に渡されます。</p>
-
-<p>JavaScript のオブジェクトが Java に送られる際、ランタイムエンジンは <code>JSObject</code> 型の Java ラッパを生成します。一方 <code>JSObject</code> が Java から JavaScript に送られるときは、ランタイムエンジンはそのラップを解き、元の JavaScript オブジェクトの種類に戻します。<code>JSObject</code> クラスには、JavaScript のメソッドを呼び出したり JavaScript のプロパティを調べるためのインタフェースが備わっています。</p>
-
-<h2 id="JavaScript_to_Java_Communication" name="JavaScript_to_Java_Communication">JavaScript から Java への通信</h2>
-
-<p>Java のパッケージやクラスを参照したり、Java のオブジェクトや配列を扱ったりするときは、特別な LiveConnect オブジェクトを使用します。JavaScript から Java へのアクセスはすべて、これらのオブジェクトを用いて行います。それらのオブジェクトについて、以下の表で簡単にまとめます。</p>
-
-<table class="standard-table">
- <caption>表 9.1 LiveConnect オブジェクト</caption>
- <thead>
- <tr>
- <th scope="col">オブジェクト</th>
- <th scope="col">説明</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td><code>JavaArray</code></td>
- <td>ラップされた Java の配列です。JavaScript コード内からアクセスされます。</td>
- </tr>
- <tr>
- <td><code>JavaClass</code></td>
- <td>Java のクラスへの JavaScript からの参照です。</td>
- </tr>
- <tr>
- <td><code>JavaObject</code></td>
- <td>ラップされた Java のオブジェクトです。JavaScript コード内からアクセスされます。</td>
- </tr>
- <tr>
- <td><code>JavaPackage</code></td>
- <td>Java のパッケージへの JavaScript からの参照です。</td>
- </tr>
- </tbody>
-</table>
-
-<p><strong>注意:</strong> Java は強く型付けされた言語であり、JavaScript は弱く型付けされた言語であるため、LiveConnect を使用する際はもう一方の言語のために JavaScript ランタイムエンジンが引数の値を適当なデータ型に変換します。詳細は<a href="/ja/docs/JavaScript/Guide/Values,_Variables,_and_Literals#Data_type_conversion" title="ja/docs/JavaScript/Guide/Values, Variables, and Literals#Data Type Conversion">データ型の変換</a>をご覧ください。</p>
-
-<p>かなり直感的に Java とやりとりできることから、ある意味で LiveConnect オブジェクトの存在は透過的です。例えば、次のように Java の <code>String</code> オブジェクトを作成し、<code>new</code> 演算子を Java のコンストラクタとともに用いて、そのオブジェクトを JavaScript の変数 <code>myString</code> に代入することができます:</p>
-
-<pre class="brush: js">var myString = new java.lang.String("Hello world");
-</pre>
-
-<p>この例では、変数 <code>myString</code> は <code>JavaObject</code> になります。これは、Java の <code>String</code> オブジェクトのインスタンスを保持しているためです。<code>JavaObject</code> であるので、<code>myString</code> は <code>java.lang.String</code> およびそのスーパークラスである <code>java.lang.Object</code> のパブリックなインスタンスメソッドにアクセスできます。これらの Java のメソッドは JavaScript から、<code>JavaObject</code> のメソッドとして使用できます:</p>
-
-<pre class="brush: js">myString.length(); // 11 を返す
-</pre>
-
-<p>JavaClass オブジェクトの静的メンバは直接呼び出すことができます。</p>
-
-<pre class="brush: js">alert(java.lang.Integer.MAX_VALUE); // 2147483647 というアラート
-</pre>
-
-<h3 id="The_Packages_Object" name="The_Packages_Object">Packages オブジェクト</h3>
-
-<p>Java のクラスが <code>java</code>、<code>sun</code> あるいは <code>netscape</code> パッケージのいずれの一部でもない場合は、<code>Packages</code> オブジェクトを用いてそれにアクセスします。例えば Redwood 社が、実装したさまざまな Java のクラスを格納するための、<code>redwood</code> という名前の Java パッケージを使用することを想定します。<code>redwood</code> の <code>HelloWorld</code> クラスのインスタンスを作成するには、次のようにそのクラスのコンストラクタにアクセスします:</p>
-
-<pre class="brush: js">var red = new Packages.redwood.HelloWorld();
-</pre>
-
-<p>デフォルトパッケージのクラス (すなわち、明示的にはパッケージに名前をつけていないクラス) にアクセスすることもできます。例えば、HelloWorld クラスが直接 <code>CLASSPATH</code> に入っており、またパッケージには入っていない場合は、次のようにしてそれにアクセスできます:</p>
-
-<pre class="brush: js">var red = new Packages.HelloWorld();
-</pre>
-
-<p>LiveConnect の <code>java</code>、<code>sun</code> および <code>netscape</code> オブジェクトはよく使用される Java のパッケージであるために、短縮記法が備わっています。例えば、次のように使用できます:</p>
-
-<pre class="brush: js">var myString = new java.lang.String("Hello world");
-</pre>
-
-<p>これは次のものを省略したものです:</p>
-
-<pre class="brush: js">var myString = new Packages.java.lang.String("Hello world");
-</pre>
-
-<h3 id="Working_with_Java_Arrays" name="Working_with_Java_Arrays">Java の配列の使用</h3>
-
-<p>Java のメソッドが配列を作成し、JavaScript からその配列を参照するときは、<code>JavaArray</code> を使用します。例えば、次のコードは int 型の要素を 10 個持つ <code>JavaArray x</code> を作成します:</p>
-
-<pre class="brush: js">var x = java.lang.reflect.Array.newInstance(java.lang.Integer, 10);
-</pre>
-
-<p>JavaScript の <code>Array</code> オブジェクトのように、<code>JavaArray</code> にはその配列の要素数を返す <code>length</code> プロパティがあります。<code>Array.length</code> とは異なり、<code>JavaArray.length</code> は読み取り専用のプロパティです。これは、Java の配列は作成時に要素総数が固定されるためです。</p>
-
-<h3 id="Package_and_Class_References" name="Package_and_Class_References">パッケージおよびクラスの参照</h3>
-
-<p>JavaScript から Java のパッケージやクラスへの簡単な参照では、<code>JavaPackage</code> や <code>JavaClass</code> オブジェクトが作成されます。先の Redwood 社についての例では、例えば Packages.redwood という参照が JavaPackage オブジェクトです。同様に、<code>java.lang.String</code> のような参照は <code>JavaClass</code> オブジェクトです。</p>
-
-<p>ほとんどの場合は <code>JavaPackage</code> や <code>JavaClass</code> オブジェクトについて気にする必要はありません。ただ Java のパッケージを使うだけのことであり、LiveConnect がこれらのオブジェクトを透過的に生成するからです。LiveConnect がクラスの読み込みに失敗する場合があり、そのときは以下のようにして手動で読み込みを行う必要があります:</p>
-
-<pre class="brush: js">var Widgetry = java.lang.Thread.currentThread().getContextClassLoader().loadClass("org.mywidgets.Widgetry");
-</pre>
-
-<p>JavaScript 1.3 以前では <code>JavaClass</code> オブジェクトをパラメータとして Java のメソッドとして渡す際に、自動的には <code>java.lang.Class</code> のインスタンスに変換されません。そのため、<code>java.lang.Class</code> のインスタンスのラッパを作成しなければなりません。次の例では、<code>forName</code> メソッドがラッパオブジェクトである <code>theClass</code> を生成します。そしてそれを <code>newInstance</code> メソッドに渡し、配列を生成します。</p>
-
-<pre class="brush: js">// JavaScript 1.3
-var theClass = java.lang.Class.forName("java.lang.String");
-var theArray = java.lang.reflect.Array.newInstance(theClass, 5);
-</pre>
-
-<p>JavaScript 1.4 以降では次の例のように、<code>JavaClass</code> オブジェクトをメソッドに直接渡すことができます:</p>
-
-<pre class="brush: js">// JavaScript 1.4
-var theArray = java.lang.reflect.Array.newInstance(java.lang.String, 5);
-</pre>
-
-<h3 id="Arguments_of_Type_char" name="Arguments_of_Type_char">char 型の引数</h3>
-
-<p>JavaScript 1.4 以降では <code>char</code> 型の引数を必要とする Java のメソッドに、1 文字の文字列を渡すことができます。例えば、次のようにして文字列 "H" を <code>Character</code> コンストラクタに渡すことができます:</p>
-
-<pre class="brush: js">var c = new java.lang.Character("H");
-</pre>
-
-<p>JavaScript 1.3 以前では、このようなメソッドにはその文字の Unicode 値に対応する整数値を渡さなければなりません。例えば、次のコードも "H" という文字列を変数 <code>c</code> に代入するものです:</p>
-
-<pre class="brush: js">var c = new java.lang.Character(72);
-</pre>
-
-<h3 id="Handling_Java_Exceptions_in_JavaScript" name="Handling_Java_Exceptions_in_JavaScript">JavaScript での Java 例外の処理</h3>
-
-<p>Java のコードは実行時に失敗すると、例外を投げます。JavaScript のコードが Java のデータメンバまたはメソッドにアクセスし、失敗すると、Java の例外が JavaScript に渡されます。これは、例外を処理できるようにするためです。JavaScript 1.4 からは <code>try...catch</code> 文でこの例外を受け取ることができます。(Mozilla 固有の LiveConnect コードが Mozilla 内でメンテナンスされていなかったため、この機能は (他の一部機能もあわせて) Gecko 1.9 で壊れています (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=391642" title="Try-catch sometimes does not catch Java LiveConnect exceptions but instead fails">バグ 391642</a> をご覧ください)。しかし Java 6 アップデート 11 および 12 での、Mozilla の汎用 (かつクロスブラウザの) <a href="/ja/docs/Plugins" title="ja/docs/Plugins">NPAPI</a> プラグインコードに依存する構築のサポートにより修復されました。)</p>
-
-<p>例えば、Java の <code>forName</code> メソッドを使用して Java のクラス名を <code>theClass</code> という変数に代入するとします。<code>forName</code> メソッドに渡す値が Java のクラス名に評価できなければ、そのメソッドは例外を投げます。次のようにして、例外を処理できるように <code>forName</code> 代入文を <code>try</code> ブロック内に置きます:</p>
-
-<pre class="brush: js">function getClass(javaClassName) {
- try {
- var theClass = java.lang.Class.forName(javaClassName);
- } catch (e) {
- return ("The Java exception is " + e);
- }
- return theClass;
-}
-</pre>
-
-<p>この例では、<code>javaClassName</code> が "java.lang.String" のような正当なクラス名に評価されると代入が成功します。<code>javaClassName</code> が "String" のような不正なクラス名に評価されると、<code>getClass</code> 関数が例外を受け取り、次のようなものを返します:</p>
-
-<pre>The Java exception is java.lang.ClassNotFoundException: String
-</pre>
-
-<p>例外の型に基づいて特別な処理をするには <code>instanceof</code> 演算子を使用します:</p>
-
-<pre class="brush: js">try {
- // ...
-} catch (e) {
- if (e instanceof java.io.FileNotFound) {
- // FileNotFound についての処理
- } else {
- throw e;
- }
-}
-</pre>
-
-<p>JavaScript の例外についての詳細情報は<a href="/ja/docs/JavaScript/Guide/Statements#Exception_Handling_Statements" title="ja/docs/JavaScript/Guide/Statements#Exception Handling Statements">例外処理文</a>を参照してください。</p>
-
-<h2 id="Java_to_JavaScript_Communication" name="Java_to_JavaScript_Communication">Java から JavaScript への通信</h2>
-
-<p>Java で JavaScript のオブジェクトを使用したい場合は、その Java ファイルに <code>netscape.javascript</code> パッケージをインポートしなければなりません。このパッケージは次のクラスを定義しています:</p>
-
-<ul>
- <li><code><a href="/ja/docs/JavaScript/Reference/LiveConnect/JSObject" title="ja/docs/JavaScript/Reference/LiveConnect/JSObject">netscape.javascript.JSObject</a></code> : Java のコードから JavaScript のメソッドやプロパティにアクセスできるようにします。</li>
- <li><code><a href="/ja/docs/JavaScript/Reference/LiveConnect/JSException" title="ja/docs/JavaScript/Reference/LiveConnect/JSException">netscape.javascript.JSException</a></code> : Java のコードで JavaScript のエラーを処理できるようにします。</li>
-</ul>
-
-<p>これらのクラスの詳細は <a href="/ja/docs/JavaScript/Reference" title="ja/docs/JavaScript/Reference">JavaScript リファレンス</a>をご覧ください。</p>
-
-<h3 id="Locating_the_LiveConnect_classes" name="Locating_the_LiveConnect_classes">LiveConnect クラスの場所の特定</h3>
-
-<p>古いバージョンの Netscape ブラウザでは、これらのクラスがブラウザに同梱されていました。JavaScript 1.2 からは、これらのクラスは .jar ファイルに格納されています。それより古いバージョンの JavaScript では、これらのクラスは .zip ファイルに格納されています。例えば Windows NT 向けの Netscape Navigator 4 では、クラスは Navigator のディレクトリ直下の <code>Program\Java\Classes</code> ディレクトリ内の <code>java40.jar</code> ファイルに格納されています。</p>
-
-<p>より最近では、クラスは Sun の Java ランタイムに同梱されています。はじめはランタイムディストリビューションの "jre/lib" ディレクトリ内の "jaws.jar" ファイルに入っていましたが (JRE 1.3)、その後同じ場所の "plugin.jar" に移っています (JRE 1.4 以降)。</p>
-
-<h3 id="Using_the_LiveConnect_classes_with_the_JDK" name="Using_the_LiveConnect_classes_with_the_JDK">JDK での LiveConnect クラスの使用</h3>
-
-<p>LiveConnect クラスにアクセスするには、次のどちらかの方法で JDK コンパイラの <code>CLASSPATH</code> に .jar または .zip ファイルを配置します:</p>
-
-<ul>
- <li><code>CLASSPATH</code> 環境変数を作成し、.jar または .zip ファイルのパスと名前を指定します。</li>
- <li>コンパイル時に <code>-classpath</code> コマンドラインパラメータを用いて .jar または .zip ファイルの場所を指定する。</li>
-</ul>
-
-<p>Windows NT では、コントロールパネルのシステムアイコンをダブルクリックし、<code>CLASSPATH</code> という名前のユーザ環境変数を作成し、それに次のような値を設定することで環境変数を作成できます:</p>
-
-<pre class="eval">C:\Program Files\Java\jre1.4.1\lib\plugin.jar
-</pre>
-
-<p><code>CLASSPATH</code> についての詳細は Sun の JDK に関する資料をご覧ください。</p>
-
-<p><strong>注意:</strong> Java は強く型付けされた言語であり、JavaScript は弱く型付けされた言語であるため、LiveConnect を使用する際はもう一方の言語のために JavaScript ランタイムエンジンが引数の値を適当なデータ型に変換します。詳細は  をご覧ください。</p>
-
-<h3 id="Using_the_LiveConnect_Classes" name="Using_the_LiveConnect_Classes">LiveConnect クラスの使用</h3>
-
-<p>すべての JavaScript オブジェクトは、Java コード内では <code>netscape.javascript.JSObject</code> のインスタンスとして現れます。Java コード内でメソッドを呼び出すときに、その引数として JavaScriptのオブジェクトを渡すことができます。そうするためには、そのメソッドの対応する仮パラメータを <code>JSObject</code> 型で定義しなければなりません。</p>
-
-<p>さらに、Java コード内で JavaScript のオブジェクトを使用するたびに、<code>netscape.javascript.JSException</code> 型の例外を処理する <code>try...catch</code> 文の内側で、その JavaScript オブジェクトを呼び出すようにしてください。こうすることで <code>JSException</code> 型の例外として Java で現れる、JavaScript コードの実行におけるエラーを Java コードで処理できるようになります。</p>
-
-<h4 id="Accessing_JavaScript_with_JSObject" name="Accessing_JavaScript_with_JSObject">JSObject を用いた JavaScript へのアクセス</h4>
-
-<p>例えば、<code>JavaDog</code> という Java のクラスを使用するとします。次のコードで示すように、<code>JavaDog</code> コンストラクタは JavaScript のオブジェクトである <code>jsDog</code> を引数としてとります。このオブジェクトは <code>JSObject</code> 型として定義されています:</p>
-
-<pre class="brush: java">import netscape.javascript.*;
-
-public class JavaDog{
- public String dogBreed;
- public String dogColor;
- public String dogSex;
-
- // クラスコンストラクタの定義
- public JavaDog(JSObject jsDog){
- // ここで try...catch を使用して JSExceptions を処理できるようにする
- this.dogBreed = (String)jsDog.getMember("breed");
- this.dogColor = (String)jsDog.getMember("color");
- this.dogSex = (String)jsDog.getMember("sex");
- }
-}
-</pre>
-
-<p><code>JSObject</code> の <code>getMember</code> メソッドは、JavaScript のオブジェクトのプロパティにアクセスするために使用するものです。この例では JavaScript のプロパティである <code>jsDog.breed</code> の値を Java のデータメンバである <code>JavaDog.dogBreed</code> に代入するために、<code>getMember</code> を使用しています。</p>
-
-<p><strong>注意:</strong> より現実的な例では <code>try...catch</code> 文の内側で <code>getMember</code> を呼び出し、<code>JSException</code> 型のエラーを処理できるようにします。詳細は、Java での JavaScript の例外処理を参照してください。</p>
-
-<p><code>getMember</code> の動作をさらに知るために、JavaScript の <code>Dog</code> オブジェクトを作成し、その定義を見てみます:</p>
-
-<pre class="brush: js">function Dog(breed,color,sex){
- this.breed = breed;
- this.color = color;
- this.sex = sex;
-}
-</pre>
-
-<p><code>Dog</code> の JavaScript のインスタンスである <code>gabby</code> は、次のようにして作ることができます:</p>
-
-<pre class="brush: js">var gabby = new Dog("lab", "chocolate", "female");
-</pre>
-
-<p><code>gabby.color</code> を評価すると、それが "chocolate" という値を持っていることがわかります。ここで次のように <code>gabby</code> オブジェクトをコンストラクタに渡し、JavaScript コードで <code>JavaDog</code> のインスタンスを作成することにします:</p>
-
-<pre class="brush: js">var javaDog = new Packages.JavaDog(gabby);
-</pre>
-
-<p><code>javaDog.dogColor</code> を評価すると、それも "chocolate" という値を持っていることがわかります。これは Java のコンストラクタ内の <code>getMember</code> メソッドが、<code>gabby.color</code> の値を <code>dogColor</code> に代入するからです。</p>
-
-<h4 id="Handling_JavaScript_Exceptions_in_Java" name="Handling_JavaScript_Exceptions_in_Java">Java での JavaScript の例外処理</h4>
-
-<p>実行時に Java からの JavaScript コードの呼び出しに失敗すると、例外が投げられます。Java から JavaScript コードを呼び出すときに、<code>try...catch</code> 文でこの例外を受け取ることができます。JavaScript の例外は、<code>netscape.javascript.JSException</code> のインスタンスとして Java コードから扱えます。</p>
-
-<p><code>JSException</code> は JavaScript が投げるあらゆる種類の例外に対応する、Java のラッパです。<code>JSObject</code> のインスタンスが JavaScript のオブジェクトのラッパであるのと同じようなものです。Java で JavaScript コードを評価するときは <code>JSException</code> を使用してください。</p>
-
-<p>Java で JavaScript コードを評価する際、次の状況でランタイムエラーが発生します:</p>
-
-<ul>
- <li>JavaScript コンパイルエラーまたは 実行時に生じた 他のエラーにより、JavaScript コードが評価されません。JavaScript インタプリタは、<code>JSException</code> のインスタンスに変換されるエラーメッセージを生成します。</li>
- <li>Java は正常に JavaScript のコードを評価しましたが、処理方法が定かでない <code>throw</code> 文をJavaScript コードが実行します。JavaScript は、<code>JSException</code> のインスタンスとしてラップされる例外を投げます。Java でこの例外のラップを解くには、<code>JSException</code> の <code>getWrappedException</code> メソッドを使用します。</li>
-</ul>
-
-<p>例えば、Java のオブジェクトである <code>jsCode</code> が自身に渡される文字列 <code>eTest</code> を評価するとします。次のようなエラー処理を実行することで、評価が原因で発生するどちらの種類のランタイムエラーにも対応できます:</p>
-
-<pre class="brush: java">import netscape.javascript.JSObject;
-import netscape.javascript.JSException;
-
-public class eTest {
- public static Object doit(JSObject obj, String jsCode) {
- try {
- obj.eval(jsCode);
- } catch (JSException e) {
- if (e.getWrappedException() == null)
- return e;
- return e.getWrappedException();
- }
- return null;
- }
-}
-</pre>
-
-<p>この例では、渡された文字列 <code>jsCode</code> を <code>try</code> ブロック内のコードが評価しようとします。文字列 "<code>myFunction()</code>" を <code>jsCode</code> の値として渡すとします。<code>myFunction</code> が JavaScript の関数として定義されていない場合、JavaScript インタプリタは <code>jsCode</code> を評価できません。インタプリタはエラーメッセージを生成し、Java のハンドラがそのメッセージを受け取り、<code>doit</code> メソッドは <code>netscape.javascript.JSException</code> のインスタンスを返します。</p>
-
-<p>しかし、次のように <code>myFunction</code> が JavaScript で定義されているとします:</p>
-
-<pre class="brush: js">function myFunction() {
- try {
- if (theCondition == true) {
- return "Everything's ok";
- } else {
- throw "JavaScript error occurred";
- }
- } catch (e) {
- if (canHandle == true) {
- handleIt();
- } else {
- throw e;
- }
- }
-}
-</pre>
-
-<p><code>theCondition</code> が false であれば、関数は例外を投げます。その例外は JavaScript コードで受け取られ、さらに <code>canHandle</code> が true の場合に JavaScript はそれを処理します。<code>canHandle</code> false がならばその例外が再び投げられ、Java のハンドラがそれを受け取り、 <code>doit</code> メソッドが次の Java の文字列を返します:</p>
-
-<pre>JavaScript error occurred
-</pre>
-
-<p>JavaScript の例外についての詳細情報は<a href="/ja/docs/JavaScript/Guide/Statements#Exception_Handling_Statements" title="ja/docs/JavaScript/Guide/Statements#Exception Handling Statements">例外処理文</a>を参照してください。</p>
-
-<h4 id="Backward_Compatibility" name="Backward_Compatibility">後方互換性</h4>
-
-<p>JavaScript 1.3 以前のバージョンでは、<code>JSException</code> クラスには省略可能な文字列引数をとる 3 つの public タイプのコンストラクタがありました。この文字列引数は、詳細なメッセージやその例外に対する他の情報を指定するものです。<code>getWrappedException</code> メソッドは使用できませんでした。</p>
-
-<p>次のような <code>try...catch</code> 文を使用することで、JavaScript 1.3 以前のバージョンで LiveConnect の例外を処理できます:</p>
-
-<pre class="brush: js">try {
- global.eval("foo.bar = 999;");
-} catch (Exception e) {
- if (e instanceof JSException) {
- jsCodeFailed();
- } else {
- otherCodeFailed();
- }
-}
-</pre>
-
-<p>この例では <code>foo</code> が定義されていないと <code>eval</code> 文が失敗します。<code>try</code> ブロックの <code>eval</code> 文が <code>JSException</code> を投げると、<code>catch</code> ブロックが <code>jsCodeFailed</code> メソッドを実行します。<code>try</code> ブロックがそれ以外のエラーを投げると、<code>otherCodeFailed</code> メソッドが実行されます。</p>
-
-<h2 id="Data_Type_Conversions" name="Data_Type_Conversions">データ型変換</h2>
-
-<p>Java は強く型付けされた言語であり、JavaScript は弱く型付けされた言語であるため、LiveConnect を使用する際はもう一方の言語のために、JavaScript ランタイムエンジンが引数の値を適切なデータ型に変換します。この変換について以下のセクションで説明します:</p>
-
-<ul>
- <li>JavaScript から Java への変換</li>
- <li>Java からJavaScript への変換</li>
-</ul>
-
-<h3 id="JavaScript_to_Java_Conversions" name="JavaScript_to_Java_Conversions">JavaScript から Java への変換</h3>
-
-<p>JavaScript から Java のメソッドを呼び出してパラメータを渡す際、渡すパラメータのデータ型は以下のセクションで説明するルールによって変換されます:</p>
-
-<ul>
- <li>数値</li>
- <li>真偽値</li>
- <li>文字列値</li>
- <li>undefined 値</li>
- <li>null 値</li>
- <li>JavaArray および JavaObject オブジェクト</li>
- <li>JavaClass オブジェクト</li>
- <li>その他の JavaScript オブジェクト</li>
-</ul>
-
-<p><code>netscape.javascript.JSObject</code> メソッドの戻り値は常に <code>java.lang.Object</code> のインスタンスに変換されます。このような戻り値の変換ルールもここで説明します。</p>
-
-<p>例えば <code>JSObject.eval</code> が JavaScript の数値を返すのであれば、この数値を <code>java.lang.Object</code> のインスタンスに変換するルールは数値に記載されています。</p>
-
-<h4 id="Number_Values" name="Number_Values">数値</h4>
-
-<p>Java のメソッドに JavaScript の数値型をパラメータとして渡すと、Java は次の表で示すルールに従ってその値を変換します:</p>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Java のパラメータ型</th>
- <th scope="col">変換ルール</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>double</td>
- <td>
- <ul>
- <li>そのままの値が、丸められたり絶対値や符号が損なわれることなく Java に渡されます。</li>
- <li><code>NaN</code> は <code>NaN</code> に変換されます。</li>
- </ul>
- </td>
- </tr>
- <tr>
- <td>java.lang.Double<br>
- java.lang.Object</td>
- <td><code>java.lang.Double</code> の新しいインスタンスが作成され、そのままの値が、丸められたり絶対値や符号が損なわれることなく Java に渡されます。</td>
- </tr>
- <tr>
- <td>float</td>
- <td>
- <ul>
- <li>値は float 精度に丸められます。</li>
- <li>大きすぎまたは小さすぎて表現できない値は、正の無限大または負の無限大に丸められます。</li>
- <li><code>NaN</code> は <code>NaN</code> に変換されます。</li>
- </ul>
- </td>
- </tr>
- <tr>
- <td>byte<br>
- char<br>
- int<br>
- long<br>
- short</td>
- <td>
- <ul>
- <li>値は負の無限大方向に丸められます。</li>
- <li>大きすぎまたは小さすぎて表現できない値は、ランタイムエラーになります。</li>
- <li><code>NaN</code> は変換されずにランタイムエラーになります。</li>
- </ul>
- </td>
- </tr>
- <tr>
- <td><code>java.lang.String</code></td>
- <td>値は文字列に変換されます。例えば:
- <ul>
- <li>237 は "237" になります。</li>
- </ul>
- </td>
- </tr>
- <tr>
- <td>boolean</td>
- <td>
- <ul>
- <li>0 および <code>NaN</code> は false に変換されます。</li>
- <li>その他の値は true に変換されます。</li>
- </ul>
- </td>
- </tr>
- </tbody>
-</table>
-
-<p><code>java.lang.String</code> のインスタンスをパラメータに想定した Java のメソッドに JavaScript の数値をパラメータとして渡すと、その数値は文字列に変換されます。<code>equals()</code> メソッドを使用すると、この変換結果と他の文字列を比較できます。</p>
-
-<h4 id="Boolean_Values" name="Boolean_Values">真偽値</h4>
-
-<p>Java のメソッドに JavaScript の真偽値型をパラメータとして渡すと、Java は次の表で示すルールに従ってその値を変換します:</p>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Java のパラメータ型</th>
- <th scope="col">変換ルール</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>boolean</td>
- <td>すべての値は、Java で対応するものに直接変換されます。</td>
- </tr>
- <tr>
- <td><code>java.lang.Boolean</code><br>
- <code>java.lang.Object</code></td>
- <td><code>java.lang.Boolean</code> の新しいインスタンスが作成されます。同一のプリミティブ値に対して 1 つのインスタンスではなく、各パラメータについて新しいインスタンスが作成されます。</td>
- </tr>
- <tr>
- <td><code>java.lang.String</code></td>
- <td>値は文字列に変換されます。例えば:
- <ul>
- <li>true は "true" になります。</li>
- <li>false は "false" になります。</li>
- </ul>
- </td>
- </tr>
- <tr>
- <td>byte<br>
- char<br>
- double<br>
- float<br>
- int<br>
- long<br>
- short</td>
- <td>
- <ul>
- <li>true は 1 になります。</li>
- <li>false は 0 になります。</li>
- </ul>
- </td>
- </tr>
- </tbody>
-</table>
-
-<p><code>java.lang.String</code> のインスタンスをパラメータに想定した Java のメソッドに JavaScript の真偽値をパラメータとして渡すと、その真偽値は文字列に変換されます。== 演算子を使用すると、この変換結果と他の文字列を比較できます。</p>
-
-<h4 id="String_Values" name="String_Values">文字列値</h4>
-
-<p>Java のメソッドに JavaScript の文字列型をパラメータとして渡すと、Java は次の表で示すルールに従ってその値を変換します:</p>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Java のパラメータ型</th>
- <th scope="col">変換ルール</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td><code>java.lang.String</code><br>
- <code>java.lang.Object</code></td>
- <td>JavaScript 1.4:
- <ul>
- <li>JavaScript の文字列は、Unicode 値で <code>java.lang.String</code> のインスタンスに変換されます。</li>
- </ul>
-
- <p>JavaScript 1.3 以前:</p>
-
- <ul>
- <li>JavaScript の文字列は、ASCII 値で <code>java.lang.String</code> のインスタンスに変換されます。</li>
- </ul>
- </td>
- </tr>
- <tr>
- <td>byte<br>
- double<br>
- float<br>
- int<br>
- long<br>
- short</td>
- <td>すべての値は、ECMA-262 に記載に従って数値に変換されます。JavaScript の文字列値は ECMA-262 に記載されたルールに従って数値に変換されます。</td>
- </tr>
- <tr>
- <td>char</td>
- <td>JavaScript 1.4:
- <ul>
- <li>1 文字の文字列は、Unicode 文字に変換されます。</li>
- <li>他のすべての値は数値に変換されます。</li>
- </ul>
-
- <p>JavaScript 1.3 以前:</p>
-
- <ul>
- <li>すべての値が数値に変換されます。</li>
- </ul>
- </td>
- </tr>
- <tr>
- <td>boolean</td>
- <td>
- <ul>
- <li>空文字列は false になります。</li>
- <li>他のすべての値は true になります。</li>
- </ul>
- </td>
- </tr>
- </tbody>
-</table>
-
-<h4 id="Undefined_Values" name="Undefined_Values">undefined 値</h4>
-
-<p>Java のメソッドに JavaScript の undefined 値をパラメータとして渡すと、Java は次の表で示すルールに従ってその値を変換します:</p>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Java のパラメータ型</th>
- <th scope="col">変換ルール</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td><code>java.lang.String</code><br>
- <code>java.lang.Object</code></td>
- <td>値は java.lang.String のインスタンスに変換され、インスタンスの値は文字列 "undefined" になります。</td>
- </tr>
- <tr>
- <td>boolean</td>
- <td>値は false になります。</td>
- </tr>
- <tr>
- <td>double<br>
- float</td>
- <td>値は <code>NaN</code> になります。</td>
- </tr>
- <tr>
- <td>byte<br>
- char<br>
- int<br>
- long<br>
- short</td>
- <td>値は 0 になります。</td>
- </tr>
- </tbody>
-</table>
-
-<p>undefined 値の変換は JavaScript 1.3 以降でのみ可能です。それより古いバージョンでは、undefined 値がサポートされていません。</p>
-
-<p><code>java.lang.String</code> のインスタンスをパラメータに想定した Java のメソッドに JavaScript の undefined 値をパラメータとして渡すと、その undefined 値は文字列に変換されます。== 演算子を使用すると、この変換結果と他の文字列を比較できます。</p>
-
-<h4 id="Null_Values" name="Null_Values">null 値</h4>
-
-<p>Java のメソッドに JavaScript の null 値をパラメータとして渡すと、Java は次の表で示すルールに従ってその値を変換します:</p>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Java のパラメータ型</th>
- <th scope="col">変換ルール</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>あらゆるクラス<br>
- あらゆるインタフェースの種類</td>
- <td>値は null になります。</td>
- </tr>
- <tr>
- <td>byte<br>
- char<br>
- double<br>
- float<br>
- int<br>
- long<br>
- short</td>
- <td>値は 0 になります。</td>
- </tr>
- <tr>
- <td>boolean</td>
- <td>値は false になります。</td>
- </tr>
- </tbody>
-</table>
-
-<h4 id="JavaArray_and_JavaObject_objects" name="JavaArray_and_JavaObject_objects">JavaArray および JavaObject オブジェクト</h4>
-
-<p>ほとんどの場合、Java のメソッドに JavaScript の <code>JavaArray</code> または <code>JavaObject</code> オブジェクトをパラメータとして渡すと、Java は単にそのオブジェクトのラップを解きます。そうでない場合は、Java は次の表で示すルールに従ってそのオブジェクトを別のデータ型に変換します:</p>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Java のパラメータ型</th>
- <th scope="col">変換ルール</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>ラップが解かれたオブジェクトと代入互換性のある、あらゆるインタフェースまたはクラス</td>
- <td>オブジェクトのラップが解かれます。</td>
- </tr>
- <tr>
- <td><code>java.lang.String</code></td>
- <td>オブジェクトのラップが解かれ、ラップが解かれた Java オブジェクトの <code>toString</code> メソッドが呼び出され、その結果が <code>java.lang.String</code> の新しいインスタンスとして返されます。</td>
- </tr>
- <tr>
- <td>byte<br>
- char<br>
- double<br>
- float<br>
- int<br>
- long<br>
- short</td>
- <td>オブジェクトのラップが解かれ、次の状況のどちらかが起こります:
- <ul>
- <li>ラップが解かれた Java のオブジェクトに <code>doubleValue</code> メソッドがあれば、<code>JavaArray</code> または <code>JavaObject</code> はこのメソッドが返す値に変換されます。</li>
- <li>ラップが解かれた Java オブジェクトに <code>doubleValue</code> メソッドがなければ、エラーが発生します。</li>
- </ul>
- </td>
- </tr>
- <tr>
- <td>boolean</td>
- <td>JavaScript 1.3 以降ではオブジェクトのラップが解かれ、次の状況のどちらかが起こります:
- <ul>
- <li>オブジェクトが null ならば、false に変換されます。</li>
- <li>オブジェクトがそれ以外の値ならば、true に変換されます。</li>
- </ul>
-
- <p>JavaScript 1.2 以前ではオブジェクトのラップが解かれ、次の状況のどちらかが起こります:</p>
-
- <ul>
- <li>ラップが解かれたオブジェクトに <code>booleanValue</code> メソッドがあれば、ソースオブジェクトは戻り値のために変換されます。</li>
- <li>オブジェクトに <code>booleanValue</code> がなければ、変換に失敗します。</li>
- </ul>
- </td>
- </tr>
- </tbody>
-</table>
-
-<p>ラップが解かれたオブジェクトが Java のパラメータ型のインスタンスであれば、インタフェースまたはクラスが、ラップが解かれたオブジェクトと代入互換性があるということです。つまり、次の文は必ず true を返します:</p>
-
-<pre class="brush: js">unwrappedObject instanceof parameterType;
-</pre>
-
-<h4 id="JavaClass_objects" name="JavaClass_objects">JavaClass オブジェクト</h4>
-
-<p>Java のメソッドに JavaScript の <code>JavaClass</code> オブジェクトをパラメータとして渡すと、Java は次の表で示すルールに従ってその値を変換します:</p>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Java のパラメータ型</th>
- <th scope="col">変換ルール</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td><code>java.lang.Class</code></td>
- <td>オブジェクトのラップが解かれます。</td>
- </tr>
- <tr>
- <td><code>netscape.javascript.JSObject</code><br>
- <code>java.lang.Object</code></td>
- <td><code>JavaClass</code> オブジェクトが <code>netscape.javascript.JSObject</code> の新しいインスタンス内にラップされます。</td>
- </tr>
- <tr>
- <td><code>java.lang.String</code></td>
- <td>オブジェクトのラップが解かれ、ラップが解かれた Java オブジェクトの <code>toString</code> メソッドが呼び出され、その結果が <code>java.lang.String</code> の新しいインスタンスとして返されます。</td>
- </tr>
- <tr>
- <td>boolean</td>
- <td>JavaScript 1.3 以降ではオブジェクトのラップが解かれ、次の状況のどちらかが起こります:
- <ul>
- <li>オブジェクトが null ならば、false に変換されます。</li>
- <li>オブジェクトがそれ以外の値ならば、true に変換されます。</li>
- </ul>
-
- <p>JavaScript 1.2 以前ではオブジェクトのラップが解かれ、次の状況のどちらかが起こります:</p>
-
- <ul>
- <li>ラップが解かれたオブジェクトに <code>booleanValue</code> メソッドがあれば、ソースオブジェクトは戻り値のために変換されます。</li>
- <li>オブジェクトに <code>booleanValue</code> がなければ、変換に失敗します。</li>
- </ul>
- </td>
- </tr>
- </tbody>
-</table>
-
-<h4 id="Other_JavaScript_objects" name="Other_JavaScript_objects">その他の JavaScript のオブジェクト</h4>
-
-<p>Java のメソッドに JavaScript のその他のオブジェクトをパラメータとして渡すと、Java は次の表で示すルールに従ってその値を変換します:</p>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Java のパラメータ型</th>
- <th scope="col">変換ルール</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td><code>netscape.javascript.JSObject</code><br>
- <code>java.lang.Object</code></td>
- <td>オブジェクトは <code>netscape.javascript.JSObject</code> の新しいインスタンス内にラップされます。</td>
- </tr>
- <tr>
- <td><code>java.lang.String</code></td>
- <td>オブジェクトのラップが解かれ、ラップが解かれたオブジェクトの <code>toString</code> メソッドが呼び出され、その結果が <code>java.lang.String</code> の新しいインスタンスとして返されます。</td>
- </tr>
- <tr>
- <td>byte<br>
- char<br>
- double<br>
- float<br>
- int<br>
- long<br>
- short</td>
- <td>オブジェクトは、ECMA-262 に記載された <code>ToPrimitive</code> 演算子のロジックを使用して値に変換されます。この演算子で使用される <em>PreferredType</em> ヒントは Number です。</td>
- </tr>
- <tr>
- <td>boolean</td>
- <td>JavaScript 1.3 以降ではオブジェクトのラップが解かれ、次の状況のどちらかが起こります:
- <ul>
- <li>オブジェクトが null ならば、false に変換されます。</li>
- <li>オブジェクトがそれ以外の値ならば、true に変換されます。</li>
- </ul>
-
- <p>JavaScript 1.2 以前ではオブジェクトのラップが解かれ、次の状況のどちらかが起こります:</p>
-
- <ul>
- <li>ラップが解かれたオブジェクトに <code>booleanValue</code> メソッドがあれば、ソースオブジェクトは戻り値のために変換されます。</li>
- <li>オブジェクトに <code>booleanValue</code> がなければ、変換に失敗します。</li>
- </ul>
- </td>
- </tr>
- </tbody>
-</table>
-
-<h3 id="Java_to_JavaScript_Conversions" name="Java_to_JavaScript_Conversions">Java から JavaScript への変換</h3>
-
-<p>Java から JavaScript に渡された値は、次のように変換されます:</p>
-
-<ul>
- <li>Java の byte、char、short、int、long、float および double は、JavaScript の数値に変換されます。</li>
- <li>Java の boolean は、JavaScript の真偽値に変換されます。</li>
- <li>クラス <code>netscape.javascript.JSObject</code> のオブジェクトは、元の JavaScript のオブジェクトに変換されます。</li>
- <li>Java の配列は JavaScript の擬似的な Array オブジェクトに変換されます。このオブジェクトは JavaScript の <code>Array</code> オブジェクトと全く同じような挙動をとります。つまり、<code>arrayName[index]</code> (<code>index</code> は整数) という構文でそれにアクセスでき、その長さを <code>arrayName.length</code> で判断できます。</li>
- <li>Java のそれ以外オブジェクトは、JavaScript のラッパに変換されます。このラッパを通じて Java のオブジェクトのメソッドやフィールドにアクセスできます:
- <ul>
- <li>このラッパから文字列への変換では、元のオブジェクトで <code>toString</code> メソッドが呼び出されます。</li>
- <li>数値への変換では、可能であれば <code>doubleValue</code> メソッドが呼び出され、そうでなければ失敗します。</li>
- <li>JavaScript 1.3 以降の真偽値への変換では、そのオブジェクトが null であれば false が、そうでなければ true を返します。</li>
- <li>JavaScript 1.2 以前の真偽値への変換では、可能であれば <code>booleanValue</code> メソッドが呼び出され、そうでなければ失敗します。</li>
- </ul>
- </li>
-</ul>
-
-<p>java.lang.Double および java.lang.Integer のインスタンスは、JavaScript の数値ではなく JavaScript のオブジェクトに変換されることに注意してください。同様に java.lang.String のインスタンスも、JavaScript の文字列ではなく JavaScript のオブジェクトに変換されます。</p>
-
-<p>Java の <code>String</code> オブジェクトも、JavaScript のラッパに相当します。JavaScript の文字列を必要とする JavaScript のメソッドを、このラッパを渡して呼び出すとエラーになります。そうではなく、次のようにラッパに空文字列を付加することで、ラッパを JavaScript の文字列に変換してください:</p>
-
-<pre class="brush: js">var JavaString = JavaObj.methodThatReturnsAString();
-var JavaScriptString = JavaString + "";</pre>
diff --git a/files/ja/web/javascript/new_in_javascript/1.1/index.html b/files/ja/web/javascript/new_in_javascript/1.1/index.html
deleted file mode 100644
index ec43553cd0..0000000000
--- a/files/ja/web/javascript/new_in_javascript/1.1/index.html
+++ /dev/null
@@ -1,74 +0,0 @@
----
-title: JavaScript 1.1 の新機能
-slug: Web/JavaScript/New_in_JavaScript/1.1
-tags:
- - JavaScript
- - JavaScript_version_overviews
-translation_of: Archive/Web/JavaScript/New_in_JavaScript/1.1
----
-<div>{{jsSidebar("New_in_JS")}}</div>
-
-<p>The following is a changelog for JavaScript from Netscape Navigator 2.0 to 3.0. The old Netscape documentation references this as <a href="http://web.archive.org/web/20060318153542/wp.netscape.com/eng/mozilla/3.0/handbook/javascript/index.html">"Features added after version 1"</a>. Netscape Navigator 3.0 was released on August 19, 1996. Netscape Navigator 3.0 was the second major version of the browser with JavaScript support.</p>
-
-<h2 id="JavaScript_versions">JavaScript versions</h2>
-
-<p>Netscape Navigator 3.0 also introduced JavaScript language versions.</p>
-
-<pre class="brush: html">&lt;script language="JavaScript"&gt; &lt;!-- JavaScript for Navigator 2.0. --&gt;
-&lt;SCRIPT LANGUAGE="JavaScript1.1"&gt; &lt;!-- JavaScript for Navigator 3.0. --&gt;&lt;/pre&gt;
-
-&lt;h2 id="New_features_in_JavaScript_1.1"&gt;New features in JavaScript 1.1&lt;/h2&gt;
-
-&lt;h3 id="New_objects"&gt;New objects&lt;/h3&gt;
-
-&lt;ul&gt;
- &lt;li&gt;&lt;code&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array"&gt;Array&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
- &lt;li&gt;&lt;code&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean"&gt;Boolean&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
- &lt;li&gt;&lt;code&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function"&gt;Function&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
- &lt;li&gt;&lt;code&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number"&gt;Number&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
-&lt;/ul&gt;
-
-&lt;h3 id="New_properties"&gt;New properties&lt;/h3&gt;
-
-&lt;ul&gt;
- &lt;li&gt;&lt;code&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_VALUE"&gt;Number.MAX_VALUE&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
- &lt;li&gt;&lt;code&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MIN_VALUE"&gt;Number.MIN_VALUE&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
- &lt;li&gt;&lt;code&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/NaN"&gt;NaN&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
- &lt;li&gt;&lt;code&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/NEGATIVE_INFINITY"&gt;Number.NEGATIVE_INFINITY&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
- &lt;li&gt;&lt;code&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/POSITIVE_INFINITY"&gt;Number.POSITIVE_INFINITY&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
-&lt;/ul&gt;
-
-&lt;h3 id="New_methods"&gt;New methods&lt;/h3&gt;
-
-&lt;ul&gt;
- &lt;li&gt;&lt;code&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/join"&gt;Array.prototype.join()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
- &lt;li&gt;&lt;code&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse"&gt;Array.prototype.reverse()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
- &lt;li&gt;&lt;code&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort"&gt;Array.prototype.sort()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
- &lt;li&gt;&lt;code&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/split"&gt;String.prototype.split()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
-&lt;/ul&gt;
-
-&lt;h3 id="New_operators"&gt;New operators&lt;/h3&gt;
-
-&lt;ul&gt;
- &lt;li&gt;&lt;code&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Operators/typeof"&gt;typeof&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
- &lt;li&gt;&lt;code&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Operators/void"&gt;void&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
-&lt;/ul&gt;
-
-&lt;h3 id="Other_new_features"&gt;Other new features&lt;/h3&gt;
-
-&lt;ul&gt;
- &lt;li&gt;&lt;code&gt;&lt;a href="/en-US/docs/Web/HTML/Element/noscript"&gt;&lt;noscript&gt;&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
- &lt;li&gt;&lt;a href="/en-US/docs/Archive/Web/LiveConnect"&gt;LiveConnect&lt;/a&gt;. Communication between Java and JavaScript.&lt;/li&gt;
-&lt;/ul&gt;
-
-&lt;h2 id="Changed_functionality_in_JavaScript_1.1"&gt;Changed functionality in JavaScript 1.1&lt;/h2&gt;
-
-&lt;ul&gt;
- &lt;li&gt;"Object deletion". You can remove an object by setting its object reference to &lt;code&gt;null&lt;/code&gt;.&lt;/li&gt;
- &lt;li&gt;&lt;code&gt;constructor&lt;/code&gt; and &lt;code&gt;prototype&lt;/code&gt; properties on objects added.&lt;/li&gt;
- &lt;li&gt;&lt;code&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval"&gt;eval()&lt;/a&gt;&lt;/code&gt; is now a method of every object (was previously a built-in function); it evaluates a string of JavaScript code in the context of the specified object.&lt;/li&gt;
- &lt;li&gt;&lt;code&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random"&gt;Math.random()&lt;/a&gt;&lt;/code&gt; now works on every platform.&lt;/li&gt;
- &lt;li&gt;&lt;code&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/toString"&gt;toString()&lt;/a&gt;&lt;/code&gt;: Added radix parameter, which specifies the base to use for representing numeric values.&lt;/li&gt;
- &lt;li&gt;&lt;code&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/isNaN"&gt;isNaN()&lt;/a&gt;&lt;/code&gt; now works on every platform (not only Unix anymore)&lt;/li&gt;
- &lt;li&gt;&lt;code&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseFloat"&gt;parseFloat()&lt;/a&gt;&lt;/code&gt; and &lt;code&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt"&gt;parseint()&lt;/a&gt;&lt;/code&gt; now return &lt;code&gt;NaN&lt;/code&gt; on all platforms, if the first character of the specified string cannot be converted to a number; in previous releases, it returned &lt;code&gt;NaN&lt;/code&gt; on Solaris and Irix and zero on all other platforms.&lt;/li&gt;
-&lt;/ul&gt;&lt;/script&gt;</pre>
diff --git a/files/ja/web/javascript/new_in_javascript/1.2/index.html b/files/ja/web/javascript/new_in_javascript/1.2/index.html
deleted file mode 100644
index 9e991631a1..0000000000
--- a/files/ja/web/javascript/new_in_javascript/1.2/index.html
+++ /dev/null
@@ -1,92 +0,0 @@
----
-title: JavaScript 1.2 の新機能
-slug: Web/JavaScript/New_in_JavaScript/1.2
-tags:
- - JavaScript
- - version
-translation_of: Archive/Web/JavaScript/New_in_JavaScript/1.2
----
-<div>{{jsSidebar("New_in_JS")}}</div>
-
-<p>この JavaScript の変更履歴は Netscape Navigator3.0~4.0 に基づいています。旧 Netscape Navigator のドキュメントは <a href="https://web.archive.org/web/19971015223714/http://developer.netscape.com/library/documentation/communicator/jsguide/js1_2.htm">archive.org</a> にあります。Netscape Navigator 4.0 は 1997 年 6 月 11 日にリリースされました。Netscape Navigator 4.0 は、JavaScript をサポートするブラウザの 3 番目のメジャーバージョンでした。</p>
-
-<h2 id="JavaScript_バージョン">JavaScript バージョン</h2>
-
-<p>Netscape Navigator 4.0 では JavaScript 1.2 を実行できるようになりました。Netscape Navigator 3.0 以前では、language 属性が "JavaScript1.2" 以上に設定されているスクリプトを無視することに注意してください。</p>
-
-<pre class="brush: html">&lt;SCRIPT LANGUAGE="JavaScript1.1"&gt; &lt;!-- JavaScript for Navigator 3.0. --&gt;
-&lt;SCRIPT LANGUAGE="JavaScript1.2"&gt; &lt;!-- JavaScript for Navigator 4.0. --&gt;</pre>
-
-<h2 id="1.2_の新機能">1.2 の新機能</h2>
-
-<h3 id="新しいオブジェクト">新しいオブジェクト</h3>
-
-<ul>
- <li>objectをリテラル記法を使って生成することが出来ます(Python 1.x のディクショナリリテラル構文からのインスパイア)</li>
- <li>配列を作成するときにもリテラル機能を作成することが出来ます(Python 1.x のリストリテラル構文からのインスパイア)。</li>
- <li><a href="/ja/docs/Web/JavaScript/Reference/Functions_and_function_scope/arguments">arguments</a></li>
-</ul>
-
-<h3 id="新しく実装されたプロパティ">新しく実装されたプロパティ</h3>
-
-<ul>
- <li>{{jsxref("Function.arity")}}</li>
-</ul>
-
-<h3 id="新しく実装されたメソッド">新しく実装されたメソッド</h3>
-
-<ul>
- <li>{{jsxref("Array.prototype.concat()")}}</li>
- <li>{{jsxref("Array.prototype.slice()")}}</li>
- <li>{{jsxref("String.prototype.charCodeAt()")}}</li>
- <li>{{jsxref("String.prototype.concat()")}}</li>
- <li>{{jsxref("String.fromCharCode()")}}</li>
- <li>{{jsxref("String.prototype.match()")}}</li>
- <li>{{jsxref("String.prototype.replace()")}}</li>
- <li>{{jsxref("String.prototype.search()")}}</li>
- <li>{{jsxref("String.prototype.slice()")}}</li>
- <li>{{jsxref("String.prototype.substr()")}}</li>
-</ul>
-
-<h3 id="新しい演算子">新しい演算子</h3>
-
-<ul>
- <li><a href="/ja/docs/Web/JavaScript/Reference/Operators/delete"><code>delete</code></a></li>
- <li><a href="/ja/docs/Web/JavaScript/Equality_comparisons_and_when_to_use_them">Equality operators</a>(<code>==</code> と <code>!=</code>)</li>
-</ul>
-
-<h3 id="新しい構文">新しい構文</h3>
-
-<ul>
- <li><a href="/ja/docs/Web/JavaScript/Reference/Statements/label">Labeled</a> statements</li>
- <li><a href="/ja/docs/Web/JavaScript/Reference/Statements/switch"><code>switch</code></a></li>
- <li><a href="/ja/docs/Web/JavaScript/Reference/Statements/do...while"><code>do...while</code></a></li>
- <li><a href="/ja/docs/Web/JavaScript/Reference/Statements/import"><code>import</code></a></li>
- <li><a href="/ja/docs/Web/JavaScript/Reference/Statements/export"><code>export</code></a></li>
-</ul>
-
-<h3 id="他の新機能">他の新機能</h3>
-
-<ul>
- <li><a href="/ja/docs/Web/JavaScript/Guide/Regular_Expressions">Regular Expressions</a></li>
- <li><a href="https://web.archive.org/web/19971015223714/http://developer.netscape.com/library/documentation/communicator/jsguide/js1_2.htm">Signed scripts</a></li>
-</ul>
-
-<h2 id="JavaScript_1.2_での機能変更">JavaScript 1.2 での機能変更</h2>
-
-<ul>
- <li>function がネスト出来る。</li>
- <li>数値を Number に変換する。</li>
- <li><code>x</code> が数値化できない文字列の場合、エラーをスローせずに、<code>NaN</code> を生成する</li>
- <li>文字列を String に変換する。</li>
- <li><code><a href="/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/sort">Array.prototype.sort()</a></code> がすべてのプラットフォームで実行可能。undefined 要素を null に変換せず、配列のハイエンドにそれらをソートする。</li>
- <li><code><a href="/ja/docs/Web/JavaScript/Reference/Global_Objects/String/split">String.prototype.split()</a></code>
- <ul>
- <li>オブジェクトの文字列を分割するすることにより、正規表現の引数と同様に、固定された文字列を取ることが出来る。</li>
- <li>結果の配列内の空要素を末尾に含まないように、リミットカウントを取ることが出来る。</li>
- </ul>
- </li>
- <li><code><a href="/ja/docs/Web/JavaScript/Reference/Global_Objects/String/substring">String.prototype.substring()</a></code>: 最初のインデックスが 2 つメのインデックスよりも大きい場合、交換しなくなった。</li>
- <li><code>toString()</code>: オブジェクトや配列をリテラルに変換。</li>
- <li>The <a href="/ja/docs/Web/JavaScript/Reference/Statements/break"><code>break</code></a> ステートメントと <a href="/ja/docs/Web/JavaScript/Reference/Statements/continue"><code>continue</code></a> ステートメントを新しいラベルステートメント内で使用可能。</li>
-</ul>
diff --git a/files/ja/web/javascript/new_in_javascript/1.3/index.html b/files/ja/web/javascript/new_in_javascript/1.3/index.html
deleted file mode 100644
index cf0c5827f2..0000000000
--- a/files/ja/web/javascript/new_in_javascript/1.3/index.html
+++ /dev/null
@@ -1,153 +0,0 @@
----
-title: JavaScript 1.3 の新機能
-slug: Web/JavaScript/New_in_JavaScript/1.3
-tags:
- - JavaScript
- - JavaScript_version_overviews
-translation_of: Archive/Web/JavaScript/New_in_JavaScript/1.3
----
-<div>{{jsSidebar("New_in_JS")}}</div>
-
-<p>The following is a changelog for JavaScript from Netscape Navigator 4.0 to 4.5. The old Netscape documentation can be found on <a href="http://web.archive.org/web/20000815081640/http://developer.netscape.com/docs/manuals/communicator/jsref/js13.html">archive.org</a>. Netscape Navigator 4.5 was released on October 19, 1998.</p>
-
-<p>The most significant change in JavaScript 1.3 was compliance with ECMA-262 and Unicode by removing inconsistencies between JavaScript 1.2 and the new ECMA standard (which was published in June 1997). Additional features of version 1.2, at the time not specified by ECMA-262 were kept in the JavaScript language (see below for a list of differences).</p>
-
-<h2 id="JavaScript_versions">JavaScript versions</h2>
-
-<p>Netscape Communicator and Navigator 4.06 and 4.5 executes JavaScript language versions up to 1.3. Note that Communicator and Navigator 4.0-4.05 and earlier ignored scripts with the language attribute set to "JavaScript1.3" and higher.</p>
-
-<pre class="brush: html">&lt;script language="JavaScript1.2"&gt; &lt;!-- JavaScript for Navigator 4.0. --&gt;
-&lt;SCRIPT LANGUAGE="JavaScript1.3"&gt; &lt;!-- JavaScript for Navigator 4.5. --&gt;&lt;/pre&gt;
-
-&lt;h2 id="New_features_in_JavaScript_1.3"&gt;New features in JavaScript 1.3&lt;/h2&gt;
-
-&lt;h3 id="New_globals"&gt;New globals&lt;/h3&gt;
-
-&lt;ul&gt;
- &lt;li&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/NaN" title="JavaScript/Reference/Global_Objects/NaN"&gt;&lt;code&gt;NaN&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
- &lt;li&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Infinity" title="JavaScript/Reference/Global_Objects/Infinity"&gt;&lt;code&gt;Infinity&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
- &lt;li&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/undefined" title="JavaScript/Reference/Properties/undefined"&gt;&lt;code&gt;undefined&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
-&lt;/ul&gt;
-
-&lt;h3 id="New_methods"&gt;New methods&lt;/h3&gt;
-
-&lt;ul&gt;
- &lt;li&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/isFinite"&gt;&lt;code&gt;isFinite()&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
- &lt;li&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/toSource" title="JavaScript/Reference/Objects/Object/ToSource"&gt;&lt;code&gt;toSource()&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
- &lt;li&gt;&lt;code&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/call"&gt;Function.prototype.call()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
- &lt;li&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply"&gt;&lt;code&gt;Function.prototype.apply()&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
- &lt;li&gt;&lt;code&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/UTC"&gt;Date.UTC()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
- &lt;li&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getFullYear"&gt;&lt;code&gt;Date.prototype.getFullYear()&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
- &lt;li&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setFullYear"&gt;&lt;code&gt;Date.prototype.setFullYear()&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
- &lt;li&gt;&lt;code&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getMilliseconds"&gt;Date.prototype.getMilliseconds()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
- &lt;li&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setMilliseconds"&gt;&lt;code&gt;Date.prototype.setMilliseconds()&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
- &lt;li&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getUTCFullYear"&gt;&lt;code&gt;Date.prototype.getUTCFullYear()&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
- &lt;li&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getUTCMonth"&gt;&lt;code&gt;Date.prototype.getUTCMonth()&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
- &lt;li&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getUTCDate"&gt;&lt;code&gt;Date.prototype.getUTCDate()&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
- &lt;li&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getUTCHours"&gt;&lt;code&gt;Date.prototype.getUTCHours()&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
- &lt;li&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getUTCMinutes"&gt;&lt;code&gt;Date.prototype.getUTCMinutes()&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
- &lt;li&gt;&lt;code&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getUTCSeconds"&gt;Date.prototype.getUTCSeconds()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
- &lt;li&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getUTCMilliseconds"&gt;&lt;code&gt;Date.prototype.getUTCMilliseconds()&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
- &lt;li&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toUTCString"&gt;&lt;code&gt;Date.prototype.toUTCString()&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
- &lt;li&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setUTCFullYear"&gt;&lt;code&gt;Date.prototype.setUTCFullYear()&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
- &lt;li&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setUTCMonth"&gt;&lt;code&gt;Date.prototype.setUTCMonth()&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
- &lt;li&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setUTCDate"&gt;&lt;code&gt;Date.prototype.setUTCDate()&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
- &lt;li&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setUTCHours"&gt;&lt;code&gt;Date.prototype.setUTCHours()&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
- &lt;li&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setUTCMinutes"&gt;&lt;code&gt;Date.prototype.setUTCMinutes()&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
- &lt;li&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setUTCSeconds"&gt;&lt;code&gt;Date.prototype.setUTCSeconds()&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
- &lt;li&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setUTCMilliseconds"&gt;&lt;code&gt;Date.prototype.setUTCMilliseconds()&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
-&lt;/ul&gt;
-
-&lt;h3 id="Other_new_features"&gt;Other new features&lt;/h3&gt;
-
-&lt;ul&gt;
- &lt;li&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators#Using_the_Equality_Operators" title="JavaScript/Reference/Operators/Comparison_Operators#Using_the_Equality_Operators"&gt;Strict equality operators&lt;/a&gt;&lt;/li&gt;
- &lt;li&gt;Unicode support&lt;/li&gt;
- &lt;li&gt;A JavaScript Console was introduced.&lt;/li&gt;
-&lt;/ul&gt;
-
-&lt;h2 id="Changed_functionality_in_JavaScript_1.3"&gt;Changed functionality in JavaScript 1.3&lt;/h2&gt;
-
-&lt;ul&gt;
- &lt;li&gt;Changes to &lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date" title="JavaScript/Reference/Global_Objects/Date"&gt;&lt;code&gt;Date&lt;/code&gt;&lt;/a&gt; to conform with ECMA-262
-
- &lt;ul&gt;
- &lt;li&gt;New constructor &lt;code&gt;Date(year, month, day, [,
- &lt;i&gt;hours&lt;/i&gt;
- [
-
- &lt;i&gt;, minutes&lt;/i&gt;
- [
-
- &lt;i&gt;, seconds&lt;/i&gt;
- [
-
- &lt;i&gt;, milliseconds&lt;/i&gt;
- ]]]])&lt;/code&gt;&lt;/li&gt;
- &lt;li&gt;Additional method parameters:
- &lt;ul&gt;
- &lt;li&gt;&lt;code&gt;setMonth(month[, date])&lt;/code&gt;&lt;/li&gt;
- &lt;li&gt;&lt;code&gt;setHours(hours[, min[, sec[, ms]]])&lt;/code&gt;&lt;/li&gt;
- &lt;li&gt;&lt;code&gt;setMinutes(min[, sec[, ms]])&lt;/code&gt;&lt;/li&gt;
- &lt;li&gt;&lt;code&gt;setSeconds(sec[, ms])&lt;/code&gt;&lt;/li&gt;
- &lt;/ul&gt;
- &lt;/li&gt;
- &lt;/ul&gt;
- &lt;/li&gt;
- &lt;li&gt;The length of an array (property length) is now an unsigned, 32-bit integer.&lt;/li&gt;
- &lt;li&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/push"&gt;&lt;code&gt;Array.prototype.push()&lt;/code&gt;&lt;/a&gt;: In JavaScript 1.2, the &lt;code&gt;push&lt;/code&gt; method returned the last element added to an array. Under JavaScript 1.3, &lt;code&gt;push&lt;/code&gt; returns the new length of the array.&lt;/li&gt;
- &lt;li&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice"&gt;&lt;code&gt;Array.prototype.splice()&lt;/code&gt;&lt;/a&gt;: In JavaScript 1.2, the &lt;code&gt;splice&lt;/code&gt; method returned the element removed, if only one element was removed (&lt;code&gt;howMany&lt;/code&gt; parameter is &lt;code&gt;1&lt;/code&gt;). In JavaScript 1.3, &lt;code&gt;splice&lt;/code&gt; always returns an array containing the removed elements. If one element is removed, an array of one element is returned.&lt;/li&gt;
- &lt;li&gt;&lt;a href="http://web.archive.org/web/20000815081640/http://developer.netscape.com/docs/manuals/communicator/jsref/js13.html#replace"&gt;Changes&lt;/a&gt; to &lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace"&gt;&lt;code&gt;String.prototype.replace()&lt;/code&gt;&lt;/a&gt;.&lt;/li&gt;
- &lt;li&gt;&lt;a href="http://web.archive.org/web/20000815081640/http://developer.netscape.com/docs/manuals/communicator/jsref/js13.html#Boolean"&gt;Changes&lt;/a&gt; to the &lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean"&gt;&lt;code&gt;Boolean&lt;/code&gt;&lt;/a&gt; object.&lt;/li&gt;
- &lt;li&gt;&lt;a href="http://web.archive.org/web/20000815081640/http://developer.netscape.com/docs/manuals/communicator/jsref/js13.html#toString"&gt;Changes&lt;/a&gt; to &lt;code&gt;toString()&lt;/code&gt;.&lt;/li&gt;
-&lt;/ul&gt;
-
-&lt;h2 id="Non-ECMA-262_features_of_JavaScript_1.3"&gt;Non-ECMA-262 features of JavaScript 1.3&lt;/h2&gt;
-
-&lt;p&gt;The following is a comparison between the June 1998 version of ECMA-262 and JavaScript 1.3. The following features were not part of the standard at that time, but implemented in JavaScript 1.3.&lt;/p&gt;
-
-&lt;h3 id="Keywords_and_operators"&gt;Keywords and operators&lt;/h3&gt;
-
-&lt;ul&gt;
- &lt;li&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators#Using_the_Equality_Operators"&gt;Strict equality operators&lt;/a&gt;&lt;/li&gt;
- &lt;li&gt;vertical tab (&lt;code&gt;\v&lt;/code&gt; or &lt;code&gt;\u000B&lt;/code&gt;) as an escape sequence.&lt;/li&gt;
-&lt;/ul&gt;
-
-&lt;h3 id="Statements"&gt;Statements&lt;/h3&gt;
-
-&lt;ul&gt;
- &lt;li&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Statements/label"&gt;&lt;code&gt;label&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
- &lt;li&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Statements/switch"&gt;&lt;code&gt;switch&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
- &lt;li&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Statements/do...while"&gt;&lt;code&gt;do...while&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
- &lt;li&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Statements/export"&gt;&lt;code&gt;export&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
- &lt;li&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Statements/import"&gt;&lt;code&gt;import&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
-&lt;/ul&gt;
-
-&lt;h3 id="Built-in_objects"&gt;Built-in objects&lt;/h3&gt;
-
-&lt;ul&gt;
- &lt;li&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp"&gt;&lt;code&gt;RegExp&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
-&lt;/ul&gt;
-
-&lt;h3 id="Methods_of_built-in_objects"&gt;Methods of built-in objects&lt;/h3&gt;
-
-&lt;ul&gt;
- &lt;li&gt;&lt;code&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/toSource"&gt;toSource()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
- &lt;li&gt;&lt;code&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/watch"&gt;Object.prototype.watch()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
- &lt;li&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/unwatch"&gt;&lt;code&gt;Object.prototype.unwatch()&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
- &lt;li&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/arity"&gt;&lt;code&gt;Function.arity&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
- &lt;li&gt;&lt;code&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply"&gt;Function.prototype.apply()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
- &lt;li&gt;&lt;code&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/call"&gt;Function.prototype.call()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
- &lt;li&gt;&lt;code&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/concat"&gt;Array.prototype.concat()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
- &lt;li&gt;&lt;code&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/pop"&gt;Array.prototype.pop()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
- &lt;li&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/push"&gt;&lt;code&gt;Array.prototype.push()&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
- &lt;li&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/shift"&gt;&lt;code&gt;Array.prototype.shift()&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
- &lt;li&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/unshift"&gt;&lt;code&gt;Array.prototype.unshift()&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
- &lt;li&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice"&gt;&lt;code&gt;Array.prototype.slice()&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
- &lt;li&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice"&gt;&lt;code&gt;Array.prototype.splice()&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
- &lt;li&gt;&lt;code&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/concat"&gt;String.prototype.concat()&lt;/a&gt;&lt;/code&gt;&lt;/li&gt;
- &lt;li&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/match"&gt;&lt;code&gt;String.prototype.match()&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
- &lt;li&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/search"&gt;&lt;code&gt;String.prototype.search()&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
- &lt;li&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/slice"&gt;&lt;code&gt;String.prototype.slice()&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
- &lt;li&gt;&lt;a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substr"&gt;&lt;code&gt;String.prototype.substr()&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
-&lt;/ul&gt;&lt;/script&gt;</pre>
diff --git a/files/ja/web/javascript/new_in_javascript/1.4/index.html b/files/ja/web/javascript/new_in_javascript/1.4/index.html
deleted file mode 100644
index 560e55f636..0000000000
--- a/files/ja/web/javascript/new_in_javascript/1.4/index.html
+++ /dev/null
@@ -1,28 +0,0 @@
----
-title: JavaScript 1.4 の新機能
-slug: Web/JavaScript/New_in_JavaScript/1.4
-tags:
- - JavaScript
- - JavaScript_version_overviews
-translation_of: Archive/Web/JavaScript/New_in_JavaScript/1.4
----
-<div>{{jsSidebar("New_in_JS")}}</div>
-
-<p>The following is a changelog for JavaScript 1.4, which was only used for Netscape's server side JavaScript released in 1999. The old Netscape documentation can be found on <a href="http://web.archive.org/web/20040802225238/http://developer.netscape.com/docs/manuals/js/core/jsref/index.htm">archive.org</a>.</p>
-
-<h2 id="New_features_in_JavaScript_1.4">New features in JavaScript 1.4</h2>
-
-<ul>
- <li>Exception handling (<a href="/en-US/docs/Web/JavaScript/Reference/Statements/throw"><code>throw</code></a> and <a href="/en-US/docs/Web/JavaScript/Reference/Statements/try...catch"><code>try...catch</code></a>)</li>
- <li><code><a href="/en-US/docs/Web/JavaScript/Reference/Operators/in">in</a></code> operator</li>
- <li><a href="/en-US/docs/Web/JavaScript/Reference/Operators/instanceof"><code>instanceof</code></a> operator</li>
-</ul>
-
-<h2 id="Changed_functionality_in_JavaScript_1.4">Changed functionality in JavaScript 1.4</h2>
-
-<ul>
- <li><code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval" title="JavaScript/Reference/Global_Functions/Eval">eval()</a></code> changes (cannot be called indirectly and no longer a method of <code>Object</code>)</li>
- <li><code><a href="/en-US/docs/Web/JavaScript/Reference/Functions_and_function_scope/arguments" title="JavaScript/Reference/Functions/arguments">arguments</a></code> not a property of functions</li>
- <li>Deprecated <code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/arity" title="JavaScript/Reference/Objects/Function/Arity">Function.arity</a></code> in favor of <code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/length" title="JavaScript/Reference/Objects/Function/length">Function.length</a></code></li>
- <li>Changes to <a href="/en-US/docs/Archive/Web/LiveConnect">LiveConnect</a></li>
-</ul>
diff --git a/files/ja/web/javascript/new_in_javascript/1.5/index.html b/files/ja/web/javascript/new_in_javascript/1.5/index.html
deleted file mode 100644
index 33868c064b..0000000000
--- a/files/ja/web/javascript/new_in_javascript/1.5/index.html
+++ /dev/null
@@ -1,42 +0,0 @@
----
-title: JavaScript 1.5 の新機能
-slug: Web/JavaScript/New_in_JavaScript/1.5
-tags:
- - JavaScript
- - JavaScript_version_overviews
-translation_of: Archive/Web/JavaScript/New_in_JavaScript/1.5
----
-<p>{{jsSidebar("New_in_JS")}}</p>
-
-<p>JavaScript バージョン 1.5 では以下の新機能や改良点が盛り込まれています。</p>
-
-<p><strong>ランタイムエラー</strong><br>
- ランタイムエラーが例外として報告されるようになっています。</p>
-
-<p><strong>数値の書式の強化</strong><br>
- Number.prototype.toExponential、Number.prototype.toFixed および Number.prototype.toPrecision メソッドの導入により、数値の書式が強化されています。<a href="/ja/Core_JavaScript_1.5_Guide/Predefined_Core_Objects/Number_Object" title="ja/Core_JavaScript_1.5_Guide/Predefined_Core_Objects/Number_Object">Number オブジェクト</a> のページを参照してください。</p>
-
-<p><strong>正規表現の強化</strong><br>
- 以下のように正規表現が強化されています。</p>
-
-<ul>
- <li>量指定子 (+、*、?、{}) は ? を続けることでスキップ優先を指定することができるようになっています。<a href="/ja/Core_JavaScript_1.5_Guide/Writing_a_Regular_Expression_Pattern#.E7.89.B9.E6.AE.8A.E6.96.87.E5.AD.97.E3.81.AE.E4.BD.BF.E7.94.A8" title="ja/Core_JavaScript_1.5_Guide/Writing_a_Regular_Expression_Pattern#.E7.89.B9.E6.AE.8A.E6.96.87.E5.AD.97.E3.81.AE.E4.BD.BF.E7.94.A8">正規表現パターンの記述</a> のページの ? の項目を参照してください。</li>
- <li>キャプチャする括弧 (x) の代わりにキャプチャしない括弧 (?:x) を使用することができます。キャプチャしない括弧を使用すると、マッチした部分式に対して後方参照ができなくなります。<a href="/ja/Core_JavaScript_1.5_Guide/Writing_a_Regular_Expression_Pattern#.E7.89.B9.E6.AE.8A.E6.96.87.E5.AD.97.E3.81.AE.E4.BD.BF.E7.94.A8" title="ja/Core_JavaScript_1.5_Guide/Writing_a_Regular_Expression_Pattern#.E7.89.B9.E6.AE.8A.E6.96.87.E5.AD.97.E3.81.AE.E4.BD.BF.E7.94.A8">正規表現パターンの記述</a> のページの (?:x) の項目を参照してください。</li>
- <li>肯定的および否定的な先読み表現がサポートされています。どちらもマッチさせた文字列に続くものに依存したマッチの表現です。<a href="/ja/Core_JavaScript_1.5_Guide/Writing_a_Regular_Expression_Pattern#.E7.89.B9.E6.AE.8A.E6.96.87.E5.AD.97.E3.81.AE.E4.BD.BF.E7.94.A8" title="ja/Core_JavaScript_1.5_Guide/Writing_a_Regular_Expression_Pattern#.E7.89.B9.E6.AE.8A.E6.96.87.E5.AD.97.E3.81.AE.E4.BD.BF.E7.94.A8">正規表現パターンの記述</a> のページの x(?=y) および x(?!y) の項目を参照してください。</li>
- <li>m フラグが追加され、複数行に対してもマッチする正規表現を指定できるようになりました。<a href="/ja/Core_JavaScript_1.5_Guide/Working_with_Regular_Expressions/Advanced_Searching_With_Flags" title="ja/Core_JavaScript_1.5_Guide/Working_with_Regular_Expressions/Advanced_Searching_With_Flags">フラグを用いた高度な検索</a> のページを参照してください。</li>
-</ul>
-
-<p><strong>ある条件下での関数の宣言</strong><br>
- if 節の中で関数を宣言できるようになっています。<a href="/ja/Core_JavaScript_1.5_Guide/Defining_Functions" title="ja/Core_JavaScript_1.5_Guide/Defining_Functions">関数の定義</a> のページを参照してください。</p>
-
-<p><strong>関数式</strong><br>
- 式の中で関数を宣言できるようになっています。<a href="/ja/Core_JavaScript_1.5_Guide/Defining_Functions" title="ja/Core_JavaScript_1.5_Guide/Defining_Functions">関数の定義</a> のページを参照してください。</p>
-
-<p><strong>複数の catch 節</strong><br>
- try...catch 文における複数の catch 節をサポートしています。<a href="/ja/Core_JavaScript_1.5_Guide/Exception_Handling_Statements/try...catch_Statement#catch_.E3.83.96.E3.83.AD.E3.83.83.E3.82.AF" title="ja/Core_JavaScript_1.5_Guide/Exception_Handling_Statements/try...catch_Statement#catch_.E3.83.96.E3.83.AD.E3.83.83.E3.82.AF">catch ブロック</a> のページを参照してください。</p>
-
-<p><strong>ゲッタとセッタ</strong><br>
- オブジェクトにゲッタとセッタを追加できるようになっています。この機能は JavaScript の C での実装でのみ利用可能です。<a href="/ja/Core_JavaScript_1.5_Guide/Creating_New_Objects/Defining_Getters_and_Setters" title="ja/Core_JavaScript_1.5_Guide/Creating_New_Objects/Defining_Getters_and_Setters">ゲッタとセッタの定義</a> のページを参照してください。</p>
-
-<p><strong>定数</strong><br>
- 読み取り専用の名前付き定数がサポートされています。この機能は JavaScript の C での実装でのみ利用可能です。<a href="/ja/Core_JavaScript_1.5_Guide/Constants" title="ja/Core_JavaScript_1.5_Guide/Constants">定数</a> のページを参照してください。</p>
diff --git a/files/ja/web/javascript/new_in_javascript/1.6/index.html b/files/ja/web/javascript/new_in_javascript/1.6/index.html
deleted file mode 100644
index c1985c16ab..0000000000
--- a/files/ja/web/javascript/new_in_javascript/1.6/index.html
+++ /dev/null
@@ -1,79 +0,0 @@
----
-title: JavaScript 1.6 の新機能
-slug: Web/JavaScript/New_in_JavaScript/1.6
-tags:
- - E4X
- - JavaScript
- - JavaScript_version_overviews
-translation_of: Archive/Web/JavaScript/New_in_JavaScript/1.6
----
-<div>{{jsSidebar("New_in_JS")}}</div>
-
-<p>JavaScript 1.6 では次のような新機能が導入されています。E4X、<code>Array</code> の新しいメソッド、そして Array および String の汎用化です。</p>
-
-<p>JavaScript 1.6 は <a href="/ja/Firefox_1.5_for_developers" title="ja/Firefox_1.5_for_developers">Firefox 1.5</a> 以降でサポートされています。</p>
-
-<h3 id="E4X" name="E4X">E4X</h3>
-
-<p>ECMAScript for XML (<a href="/ja/E4X" title="ja/E4X">E4X</a>) は <a href="/ja/JavaScript" title="ja/JavaScript">JavaScript</a> 内で <a href="/ja/XML" title="ja/XML">XML</a> コンテンツを作成したり処理したりする強力な技術です。私たちは、既存の <a href="/ja/DOM" title="ja/DOM">DOM</a> との透過的な統合など、E4X サポートの向上を続けていくつもりですが、XML ベースのウェブアプリケーションの開発者は Firefox 1.5 での E4X サポートの恩恵を受けることができます。</p>
-
-<p>E4X を利用する際も、あなたは標準的な MIME タイプを使用することができます:</p>
-
-<pre>&lt;script type="text/javascript"&gt;
-</pre>
-
-<p>しかし E4X の文法は、スクリプトを HTML コメント (<code><span class="nowiki">&lt;!--...--&gt;</span></code>) 内に埋め込むという、古いブラウザからスクリプトを見えなくするための一般的な方法と衝突する可能性があります。E4X はまた、スクリプトを XML の CDATA セクション (<code>&lt;![CDATA{{ mediawiki.external('...') }}]&gt;</code>) 内に埋め込むという、"&lt;" や "&gt;" という記号を使えるようにするよりモダンな方法 (これは HTML には適用できないので注意) とも衝突する可能性があります。よくわからない文法エラーが生じた場合は MIME タイプに "; e4x=1" を追加してください:</p>
-
-<pre>&lt;script type="text/javascript; e4x=1"&gt;
-</pre>
-
-<p>拡張機能のスクリプトは常に HTML コメントを E4X リテラルとして扱うことに注意してください。つまり、"e4x=1" が暗黙的に指定されている状態です。</p>
-
-<p>E4X については、<a href="/ja/Core_JavaScript_1.5_Guide/Processing_XML_with_E4X" title="ja/Core_JavaScript_1.5_Guide/Processing_XML_with_E4X">Processing XML with E4X</a> で説明されています。</p>
-
-<h3 id="Array_.E3.81.AE.E6.8B.A1.E5.BC.B5" name="Array_.E3.81.AE.E6.8B.A1.E5.BC.B5">Array の拡張</h3>
-
-<p><code><a href="/ja/JavaScript/Reference/Global_Objects/Array" title="ja/JavaScript/Reference/Global_Objects/Array">Array</a></code> のメソッドが新しく 7 つ追加されました。これらは項目の場所に関するメソッドと反復的なメソッドの 2 つに分類可能です。項目の場所に関するメソッドは:</p>
-
-<ul>
- <li><code><a href="/ja/JavaScript/Reference/Global_Objects/Array/indexOf" title="ja/JavaScript/Reference/Global_Objects/Array/indexOf">indexOf()</a></code> - 与えられた項目が最初に出現するインデックスを返す。</li>
- <li><code><a href="/ja/JavaScript/Reference/Global_Objects/Array/lastIndexOf" title="ja/JavaScript/Reference/Global_Objects/Array/lastIndexOf">lastIndexOf()</a></code> - 与えられた項目が最後に出現するインデックスを返す。</li>
-</ul>
-
-<p>反復的なメソッドは:</p>
-
-<ul>
- <li><code><a href="/ja/JavaScript/Reference/Global_Objects/Array/every" title="ja/JavaScript/Reference/Global_Objects/Array/every">every()</a></code> - 配列の各項目において関数を実行し、訪れることのできたすべての項目について関数が true を返した場合に true を返す。</li>
- <li><code><a href="/ja/JavaScript/Reference/Global_Objects/Array/filter" title="ja/JavaScript/Reference/Global_Objects/Array/filter">filter()</a></code> - 配列の各項目において関数を実行し、関数が true を返した項目全体からなる配列を返す。</li>
- <li><code><a href="/ja/JavaScript/Reference/Global_Objects/Array/forEach" title="ja/JavaScript/Reference/Global_Objects/Array/forEach">forEach()</a></code> - 配列の各項目において関数を実行する。</li>
- <li><code><a href="/ja/JavaScript/Reference/Global_Objects/Array/map" title="ja/JavaScript/Reference/Global_Objects/Array/map">map()</a></code> - 配列の各項目において関数を実行し、その結果の配列を返す。</li>
- <li><code><a href="/ja/JavaScript/Reference/Global_Objects/Array/some" title="ja/JavaScript/Reference/Global_Objects/Array/some">some()</a></code> - 配列の各項目において関数を実行し、訪れることのできたどれかの項目について関数が true を返した場合に true を返す。</li>
-</ul>
-
-<p>詳しい情報については、<a href="/ja/Core_JavaScript_1.5_Guide/Working_with_Arrays#Introduced_in_JavaScript_1.6" title="ja/Core_JavaScript_1.5_Guide/Working_with_Arrays#Introduced_in_JavaScript_1.6">Working with Arrays</a>、もしくは、Nicholas C. Zakas の <a class="external" href="http://www.webreference.com/programming/javascript/ncz/column4/index.html">Mozilla's New Array Methods</a> という記事を参照してください。</p>
-
-<h3 id="Array_.E3.81.8A.E3.82.88.E3.81.B3_String_.E3.81.AE.E6.B1.8E.E7.94.A8.E5.8C.96" name="Array_.E3.81.8A.E3.82.88.E3.81.B3_String_.E3.81.AE.E6.B1.8E.E7.94.A8.E5.8C.96">Array および String の汎用化</h3>
-
-<p>時々、配列のメソッドを文字列に適用したい場合があり、次のようにして、文字列を文字の配列として取り扱うことがあります。例えば、変数 <var>str</var> に含まれる文字がすべて英字であることをチェックするには、次のように書くでしょう:</p>
-
-<pre>function isLetter(character) {
- return (character &gt;= "a" &amp;&amp; character &lt;= "z");
-}
-
-if (Array.prototype.every.call(str, isLetter))
- alert("文字列 '" + str + "' は英字のみ含んでいます!");
-</pre>
-
-<p>この記法はかなり無駄が多く、JavaScript 1.6 では{{ 原語併記("汎用的", "generic") }}な簡易表記が導入されました:</p>
-
-<pre>if (Array.every(str, isLetter))
- alert("文字列 '" + str + "' は英字のみ含んでいます!");
-</pre>
-
-<p>同様に String のメソッドをどんなオブジェクトにも簡単に適用できます:</p>
-
-<pre>var num = 15;
-alert(String.replace(num, /5/, '2'));
-</pre>
-
-<p><a href="/ja/Core_JavaScript_1.5_Guide/Working_with_Arrays#Working_with_Array-like_objects" title="ja/Core_JavaScript_1.5_Guide/Working_with_Arrays#Working_with_Array-like_objects">Working with Array-like objects</a> も参照してください。</p>
diff --git a/files/ja/web/javascript/new_in_javascript/1.7/index.html b/files/ja/web/javascript/new_in_javascript/1.7/index.html
deleted file mode 100644
index 6750aa396b..0000000000
--- a/files/ja/web/javascript/new_in_javascript/1.7/index.html
+++ /dev/null
@@ -1,558 +0,0 @@
----
-title: JavaScript 1.7 の新機能
-slug: Web/JavaScript/New_in_JavaScript/1.7
-tags:
- - JavaScript
- - JavaScript_version_overviews
-translation_of: Archive/Web/JavaScript/New_in_JavaScript/1.7
----
-<div>
-<div>{{jsSidebar("New_in_JS")}}</div>
-</div>
-
-<p>JavaScript 1.7 はいくつかの新機能、特に{{ 原語併記("ジェネレータ", "generators") }}、{{ 原語併記("イテレータ", "iterators") }}、{{ 原語併記("配列内包", "array comprehensions") }}、{{ 原語併記("<code>let</code> 式", "<code>let</code> expressions") }}、および{{ 原語併記("分割代入", "destructuring assignment") }} を取り入れた言語アップデートです。<a href="/ja/New_in_JavaScript_1.6" title="ja/New_in_JavaScript_1.6">JavaScript 1.6</a> のすべての機能も含まれています。</p>
-
-<p>JavaScript 1.7 のサポートは Firefox 2 に導入されました。</p>
-
-<p>この記事に含まれるコードの例は JavaScript シェルから実験できます。<a href="/ja/Introduction_to_the_JavaScript_shell" title="ja/Introduction_to_the_JavaScript_shell">Introduction to the JavaScript shell</a> を読み、シェルのビルド方法と使い方を学んでください。</p>
-
-<h2 id="JavaScript_1.7_.E3.82.92.E4.BD.BF.E3.81.86" name="JavaScript_1.7_.E3.82.92.E4.BD.BF.E3.81.86">JavaScript 1.7 を使う</h2>
-
-<p>JavaScript 1.7 の一部の新機能を使うためには、JavaScript 1.7 が使いたいという宣言が必要です。HTML または XUL コードでは次のコードを使ってください。</p>
-
-<pre><code>&lt;script type="application/javascript;version=1.7"/&gt;</code></pre>
-
-<p><a href="/ja/Introduction_to_the_JavaScript_shell" title="ja/Introduction_to_the_JavaScript_shell">JavaScript シェル</a>を使うときは、コマンドラインで <code>-version 170</code> スイッチを使うか、<code>version()</code> 関数を使って使いたいバージョンを設定する必要があります。</p>
-
-<pre><code>version(170);</code></pre>
-
-<p>新しいキーワード "yield" と "let" を使用する必要のある機能は、既存のコードでそれらのキーワードが変数や関数として利用されている恐れがあるため、バージョン 1.7 と宣言しなければ利用できません。新しいキーワードを導入していない機能 (分割代入と配列内包) は、JavaScript のバージョン宣言なしに利用できます。</p>
-
-<h2 id=".E3.82.B8.E3.82.A7.E3.83.8D.E3.83.AC.E3.83.BC.E3.82.BF.E3.81.A8.E3.82.A4.E3.83.86.E3.83.AC.E3.83.BC.E3.82.BF" name=".E3.82.B8.E3.82.A7.E3.83.8D.E3.83.AC.E3.83.BC.E3.82.BF.E3.81.A8.E3.82.A4.E3.83.86.E3.83.AC.E3.83.BC.E3.82.BF">ジェネレータとイテレータ</h2>
-
-<p>{{ 原語併記("繰り返しの", "iterative") }} アルゴリズム (リストの各要素に同じ処理をしたり、同じデータセットに繰り返し計算を行うなど) を含むコードを開発する際、しばしば計算処理の間その値が維持される必要のある状態変数が使われます。伝統的には、繰り返しのアルゴリズムの介在変数を得るにはコールバック関数を使わなくてはなりません。</p>
-
-<h3 id=".E3.82.B8.E3.82.A7.E3.83.8D.E3.83.AC.E3.83.BC.E3.82.BF" name=".E3.82.B8.E3.82.A7.E3.83.8D.E3.83.AC.E3.83.BC.E3.82.BF">ジェネレータ</h3>
-
-<p>フィボナッチ数を計算するこの繰り返しアルゴリズムについて考えてみましょう:</p>
-
-<pre class="brush:js">function do_callback(num) {
- document.write(num + "&lt;br&gt;\n");
-}
-
-function fib() {
- var i = 0, j = 1, n = 0;
- while (n &lt; 10) {
- do_callback(i);
- var t = i;
- i = j;
- j += t;
- n++;
- }
-}
-
-fib();</pre>
-
-<p>このコードはアルゴリズムのそれぞれの繰り返しステップの処理を実行するのにコールバックルーチンを使っています。この場合、それぞれのフィボナッチ数は単純にコンソールに出力されます。</p>
-
-<p>{{ 原語併記("ジェネレータ", "generators") }} および{{ 原語併記("イテレータ", "iterators") }} は相互に働き、新しく、より良くこれを実行する方法を提供します。ジェネレータを使って書かれたフィボナッチ数ルーチンがどうなっているか見てみましょう:</p>
-
-<pre class="brush:js">function fib() {
- var i = 0, j = 1;
- while (true) {
- yield i;
- var t = i;
- i = j;
- j += t;
- }
-}
-
-var g = fib();
-
-for (var i = 0; i &lt; 10; i++) {
- document.write(g.next() + "&lt;br&gt;\n");
-}</pre>
-
-<p><code>yield</code> キーワードを含む関数がジェネレータです。これを呼ぶと、ジェネレータの仮引数は実引数と結び付きますが、本体は実際には評価されません。代わりにジェネレータ・イテレータが返ってきます。ジェネレータ・イテレータの <code>next()</code> メソッドを呼び出すたびに、繰り返しのアルゴリズムが 1 回ずつ実行されます。それぞれのステップでの値は、<code>yield</code> キーワードで指定された値です。<code>yield</code> をアルゴリズムの繰り返しの範囲を示すジェネレータ・イテレータ版の <code>return</code> だと考えましょう。毎回 <code>next()</code> を呼び出すたび、ジェネレータのコードは <code>yield</code> の次の文から再開します。</p>
-
-<p>あなたはジェネレータ・イテレータを、その <code>next()</code> メソッドを繰り返し呼び出すことで、あなたが望んだ結果の状態にたどりつくまで反復させられます。この例では、私たちが欲しいだけの結果を手に入れるまで <code>g.next()</code> を呼び出し続けることで、私たちはどれだけでも多くのフィボナッチ数を得ることができます。</p>
-
-<h4 id=".E3.82.B8.E3.82.A7.E3.83.8D.E3.83.AC.E3.83.BC.E3.82.BF.E3.82.92.E6.8C.87.E5.AE.9A.E3.81.AE.E6.99.82.E7.82.B9.E3.81.8B.E3.82.89.E5.86.8D.E9.96.8B.E3.81.99.E3.82.8B" name=".E3.82.B8.E3.82.A7.E3.83.8D.E3.83.AC.E3.83.BC.E3.82.BF.E3.82.92.E6.8C.87.E5.AE.9A.E3.81.AE.E6.99.82.E7.82.B9.E3.81.8B.E3.82.89.E5.86.8D.E9.96.8B.E3.81.99.E3.82.8B">ジェネレータを指定の時点から再開する</h4>
-
-<p>一度 <code>next()</code> メソッドを呼び出してジェネレータをスタートさせると、与えた特定の値を最後の <code>yield</code> の結果として扱わせる <code>send()</code> を使うことができます。その際ジェネレータはその次の <code>yield</code> のオペランドを返します。</p>
-
-<p>ジェネレータを勝手な時点から始めることはできません。特定の値を <code>send()</code> する前に必ず <code>next()</code> でジェネレータをスタートさせなければなりません。</p>
-
-<div class="note"><strong>注:</strong> 興味深い点として、<code>send(undefined)</code> を呼び出すことは <code>next()</code> を呼び出すことと等価です。しかし <code>send()</code> を呼び出す際、生まれたてのジェネレータを undefined 以外の値からスタートさせようとすると <code>TypeError</code> 例外を引き起こします。</div>
-
-<h4 id=".E3.82.B8.E3.82.A7.E3.83.8D.E3.83.AC.E3.83.BC.E3.82.BF.E4.B8.AD.E3.81.A7.E3.81.AE.E4.BE.8B.E5.A4.96" name=".E3.82.B8.E3.82.A7.E3.83.8D.E3.83.AC.E3.83.BC.E3.82.BF.E4.B8.AD.E3.81.A7.E3.81.AE.E4.BE.8B.E5.A4.96">ジェネレータ中での例外</h4>
-
-<p>投げさせたい例外の値を渡して <code>throw()</code> メソッドを呼び出すことで、ジェネレータに強制的に例外を投げさせることができます。この例外はその時点の中断されたジェネレータの文脈から、つまりあたかもその時点で一時停止されている <code>yield</code> が <code>throw <em>value</em></code> に置き換わったかのように投げられます。</p>
-
-<p>もし投げられた例外の処理中に yield に遭遇しなかった場合、その例外は <code>throw()</code> の呼び出し元に伝播し、それ以降 <code>next()</code> を呼び出すと <code>StopIteration</code> が投げられます。</p>
-
-<h4 id=".E3.82.B8.E3.82.A7.E3.83.8D.E3.83.AC.E3.83.BC.E3.82.BF.E3.82.92.E9.96.89.E3.81.98.E3.82.8B" name=".E3.82.B8.E3.82.A7.E3.83.8D.E3.83.AC.E3.83.BC.E3.82.BF.E3.82.92.E9.96.89.E3.81.98.E3.82.8B">ジェネレータを閉じる</h4>
-
-<p>ジェネレータは自分自身を閉じさせる <code>close()</code> メソッドを持っています。ジェネレータを閉じることの効果は:</p>
-
-<ol>
- <li>ジェネレータ内のアクティブなすべての <code>finally</code> 節が実行されます。</li>
- <li>もし <code>finally</code> 節が <code>StopIteration</code> 以外の例外を投げた場合、その例外は <code>close()</code> メソッドの呼び出し元に伝播されます。</li>
- <li>ジェネレータが終了します。</li>
-</ol>
-
-<h4 id=".E3.82.B8.E3.82.A7.E3.83.8D.E3.83.AC.E3.83.BC.E3.82.BF.E3.81.AE.E4.BE.8B" name=".E3.82.B8.E3.82.A7.E3.83.8D.E3.83.AC.E3.83.BC.E3.82.BF.E3.81.AE.E4.BE.8B">ジェネレータの例</h4>
-
-<p>このコードは 100 回ループするごとに yield するジェネレータを走らせます。</p>
-
-<pre class="brush:js">var gen = generator();
-
-function driveGenerator() {
- if (gen.next()) {
- window.setTimeout(driveGenerator, 0);
- } else {
- gen.close();
- }
-}
-
-function generator() {
- while (i &lt; something) {
- /** 何か **/
-
- ++i;
- /** 100 周ごとに yield **/
- if ((i % 100) == 0) {
- yield true;
- }
- }
-
- yield false;
-}</pre>
-
-<h3 id=".E3.82.A4.E3.83.86.E3.83.AC.E3.83.BC.E3.82.BF" name=".E3.82.A4.E3.83.86.E3.83.AC.E3.83.BC.E3.82.BF">イテレータ</h3>
-
-<p>{{ 原語併記("イテレータ", "iterator") }} とは、データへの繰り返しの処理をしやすくする特別なオブジェクトのことです。</p>
-
-<p>普通の使い方では、イテレータオブジェクトは「目に見えません」。つまりあなたはイテレータオブジェクトを明示的に操作する必要はなく、代わりに JavaScript の <a href="/ja/Core_JavaScript_1.5_Guide/Object_Manipulation_Statements" title="ja/Core_JavaScript_1.5_Guide/Object_Manipulation_Statements"><code>for...in</code> や <code>for each...in</code> 文</a>を使うことで、オブジェクトのキーや値への繰り返し処理を自然と行うことができます。</p>
-
-<pre class="brush:js">var objectWithIterator = getObjectSomehow();
-
-for (var i in objectWithIterator) {
- document.write(objectWithIterator[i] + "&lt;br&gt;\n");
-}</pre>
-
-<p>もし独自のイテレータオブジェクトを実装したり、イテレータを直接操作する何か別の必要があったりするならば、あなたは <code>next</code> メソッドと <code>StopIteration</code> 例外、そして <code>__iterator__</code> プロパティについて知る必要があります。</p>
-
-<p>あなたは <code>Iterator(<em>objectname</em>)</code> を呼び出すことで、あるオブジェクトのイテレータを生成することができますが、そのようなあるオブジェクトのイテレータは、そのオブジェクトの <code>__iterator__</code> メソッドを呼び出すことで見つけられます。もし <code>__iterator__</code> が存在しなければ、デフォルトのイテレータが生成されます。デフォルトのイテレータは、普通の <code>for...in</code> や <code>for each...in</code> のモデルに基づいて、オブジェクトのプロパティを yield します。もしあなたがカスタマイズしたイテレータを提供したいならば、<code>__iterator__</code> メソッドをあなたのカスタマイズしたイテレータのインスタンスを返すように上書きしてください。スクリプトからオブジェクトのイテレータを得るには、直接 <code>__iterator__</code> プロパティにアクセスせず <code>Iterator(<em>obj</em>)</code> を使ってください。後者は配列 (Array) に対しても使えますが、前者は使えません。</p>
-
-<p>一度イテレータを手に入れれば、そのイテレータの <code>next()</code> メソッドを呼び出すことで簡単にオブジェクトの次の項目を取得することができます。もしデータが残っていない場合は、<code>StopIteration</code> 例外が投げられます。</p>
-
-<p>ここに直接的なイテレータ操作の単純な例を示します:</p>
-
-<pre class="brush:js">var obj = {name:"Jack Bauer", username:"JackB", id:12345, agency:"CTU", region:"Los Angeles"};
-
-var it = Iterator(obj);
-
-try {
- while (true) {
- print(it.next() + "\n");
- }
-} catch (err if err instanceof StopIteration) {
- print("レコードの終わり。\n");
-} catch (err) {
- print("不明なエラー: " + err.description + "\n");
-}</pre>
-
-<p>このプログラムの出力は次のようになります:</p>
-
-<pre>name,Jack Bauer
-username,JackB
-id,12345
-agency,CTU
-region,Los Angeles
-レコードの終わり。</pre>
-
-<p>イテレータを生成する際、オプションとして 2 つ目の引数を指定することができます。この引数は真偽値で、<code>next()</code> メソッドを呼び出すごとにキーの方だけを返してほしいかどうかを示します。このパラメータはユーザー定義の<code>__iterator__</code> 関数に唯一の引数として渡されます。上のサンプルで <code>var it = Iterator(obj);</code> を <code>var it = Iterator(obj, true);</code> に変えると、以下のような出力になります:</p>
-
-<pre>name
-username
-id
-agency
-region
-レコードの終わり。
-</pre>
-
-<p>どちらの場合でも、データが返ってくる実際の順番はその実装によって変わります。データの順番は無保証です。</p>
-
-<p>イテレータは、その中にあなたが気づいていないデータが含まれているかもしれないオブジェクトも含め、オブジェクト中のデータをスキャンする手軽な方法です。これは特に、アプリケーションが予想していないデータを保存する必要がある場合に便利です。</p>
-
-<h2 id=".E9.85.8D.E5.88.97.E5.86.85.E5.8C.85" name=".E9.85.8D.E5.88.97.E5.86.85.E5.8C.85">配列内包</h2>
-
-<p>{{ 原語併記("配列内包", "array comprehensions") }} は、配列のパワフルな初期化を実行する簡便な方法を提供するジェネレータの使い方です。例えば:</p>
-
-<pre class="brush:js">function range(begin, end) {
- for (let i = begin; i &lt; end; ++i) {
- yield i;
- }
-}</pre>
-
-<p><code>range()</code> は <var>begin</var> から <var>end</var> までのすべての数値を返すジェネレータです。このように定義すると、私たちはこれを次のように使うことができます:</p>
-
-<pre><code>var ten_squares = [i * i for each (i in range(0, 10))];</code></pre>
-
-<p>これは新しい配列 <var>ten_squares</var> を、<code>0..9</code> の範囲にある値の平方を含むようあらかじめ初期化します。</p>
-
-<p>あなたは配列を初期化する際、任意の条件文を使うことができます。もしある配列を 0 と 20 の間にある偶数が含まれるように初期化したいならば、次のコードを使うことができます:</p>
-
-<pre>var evens = [i for each (i in range(0, 21)) if (i % 2 == 0)];</pre>
-
-<p>JavaScript 1.7 以前では、これは次のようにコーディングしなければならないでしょう:</p>
-
-<pre class="brush:js">var evens = [];
-
-for (var i = 0; i &lt;= 20; i++) {
- if (i % 2 == 0)
- evens.push(i);
-}</pre>
-
-<p>配列内包はより一層コンパクトであるだけでなく、一度そのコンセプトに精通してしまえば、実際のところ読みやすいものです。</p>
-
-<h3 id=".E3.82.B9.E3.82.B3.E3.83.BC.E3.83.97.E3.81.AE.E8.A6.8F.E5.89.87" name=".E3.82.B9.E3.82.B3.E3.83.BC.E3.83.97.E3.81.AE.E8.A6.8F.E5.89.87">スコープの規則</h3>
-
-<p>配列内包は暗黙的な <code>let</code> 宣言と同様に、角カッコの内側にあるすべてを含んだその周りに暗黙的なブロックを持ちます。</p>
-
-<p><em>Add details.</em></p>
-
-<h2 id="let_.E3.82.92.E4.BD.BF.E3.81.A3.E3.81.9F.E3.83.96.E3.83.AD.E3.83.83.E3.82.AF.E3.82.B9.E3.82.B3.E3.83.BC.E3.83.97" name="let_.E3.82.92.E4.BD.BF.E3.81.A3.E3.81.9F.E3.83.96.E3.83.AD.E3.83.83.E3.82.AF.E3.82.B9.E3.82.B3.E3.83.BC.E3.83.97"><code>let</code> を使ったブロックスコープ</h2>
-
-<p>データや関数のブロックスコープを管理する <code>let</code> を使うにはいくつかの方法があります:</p>
-
-<ul>
- <li><strong><code>let</code> 文</strong> は、あるブロックのスコープ内で、ブロックの外にある同じ名前の変数の値に影響を与えることなく、変数と値を関連付ける手段を提供します。</li>
- <li><strong><code>let</code> 式</strong> は、1 つの式だけに対して変数スコープを確立することができます。</li>
- <li><strong><code>let</code> 定義</strong> は、その定義が行われたブロックにスコープが拘束された変数を定義します。この構文は <code>var</code> に対し使われる構文に非常によく似ています。</li>
- <li>また、<code>let</code> を使って <code>for</code> ループの文脈内でのみ存在しうる変数を確立することができます。</li>
-</ul>
-
-<h3 id="let_.E6.96.87" name="let_.E6.96.87"><code>let</code> 文</h3>
-
-<p><code>let</code> 文は変数に対するローカルスコープを提供します。<code>let</code> 文はコードのある 1 つのブロックのレキシカルスコープに 0 以上の変数を結びつけることによって働き、それ以外は<a href="/ja/JavaScript/Reference/Statements/block" title="ja/JavaScript/Reference/Statements/block">ブロック文</a>と全く同じです。特に、<code>let</code> 文の内側で <code>var</code> を使って定義された変数のスコープは、<code>let</code> 文の外側でそれが定義された場合と同じであり、そのような変数は従来通り関数スコープを持つことに注意してください。</p>
-
-<p>例えば:</p>
-
-<pre class="brush:js">var x = 5;
-var y = 0;
-
-let ( x = x + 10, y = 12 ) {
- print(x+y + "\n");
-}
-
-print( (x + y) + "\n" );</pre>
-
-<p>このプログラムからの出力は次のようになるでしょう:</p>
-
-<pre>27
-5</pre>
-
-<p>コードブロックに関するルールは JavaScript の他のコードブロックと同じです。<code>let</code> 宣言を使って確立されたブロック自身のローカル変数を持っているかもしれません。</p>
-
-<div class="note"><strong>注:</strong> <code>let</code> 文の構文を使う時、<code>let</code> の後の丸カッコは必須です。これを入れないと構文エラーとなります。</div>
-
-<div>{{ 英語版章題("Scoping rules 2") }}</div>
-
-<h4 id=".E3.82.B9.E3.82.B3.E3.83.BC.E3.83.97.E3.81.AE.E8.A6.8F.E5.89.87_2" name=".E3.82.B9.E3.82.B3.E3.83.BC.E3.83.97.E3.81.AE.E8.A6.8F.E5.89.87_2">スコープの規則</h4>
-
-<p><code>let</code> を使って定義された変数のスコープは、<code>let</code> ブロック自身とその内部に含まれるすべてのブロックです。ただしそれらのブロックが同じ名前で変数を定義している場合を除きます。</p>
-
-<h3 id="let_.E5.BC.8F" name="let_.E5.BC.8F"><code>let</code> 式</h3>
-
-<p><code>let</code> を使ってある 1 つの式だけに対してスコープを持つ変数を確立することができます:</p>
-
-<pre class="brush:js">var x = 5;
-var y = 0;
-
-document.write( let(x = x + 10, y = 12) x + y + "&lt;br&gt;\n");
-document.write( x + y + "&lt;br&gt;\n" );</pre>
-
-<p>結果として出力されるのは:</p>
-
-<pre>27
-5</pre>
-
-<p>この場合、変数 <var>x</var>、<var>y</var> のそれぞれ <code>x+10</code>、<code>12</code> との結び付きは、式 <code>x+y</code> に対してのみスコープを持ちます。</p>
-
-<h4 id=".E3.82.B9.E3.82.B3.E3.83.BC.E3.83.97.E3.81.AE.E8.A6.8F.E5.89.87_3" name=".E3.82.B9.E3.82.B3.E3.83.BC.E3.83.97.E3.81.AE.E8.A6.8F.E5.89.87_3">スコープの規則</h4>
-
-<p>以下の <code>let</code> 式があったとすると:</p>
-
-<pre><code>let (<var>decls</var>) <var>expr</var></code></pre>
-
-<p><var>expr</var> の周りに暗黙的なブロックが生成されます。</p>
-
-<h3 id="let_.E5.AE.9A.E7.BE.A9" name="let_.E5.AE.9A.E7.BE.A9"><code>let</code> 定義</h3>
-
-<p><code>let</code> キーワードはブロック内で変数を定義するのにも使うことができます。</p>
-
-<div class="note"><strong>注:</strong> もしあなたがより興味深い <code>let</code> 定義の使用例を知っているならば、どうぞここに追加することを検討してみてください。</div>
-
-<pre class="brush:js">if (x &gt; y) {
- let gamma = 12.7 + y;
- i = gamma * x;
-}</pre>
-
-<p><code>let</code> 文・式・定義はしばしば、内部関数が使われる際にコードを簡潔にさせることがあります。</p>
-
-<pre class="brush:js">var list = document.getElementById("list");
-for (var i = 1; i &lt;= 5; i++) {
- var item = document.createElement("LI");
-
- item.appendChild( document.createTextNode("Item " + i) );
- let j = i;
-
- item.onclick = function (ev) {
- alert("Item " + j + " is clicked.");
- };
-
- list.appendChild(item);
-}</pre>
-
-<p>上の例は、内部の無名関数の 5 つのインスタンスがそれぞれ変数 <code>j</code> の異なる 5 つのインスタンスを参照しているために、意図通りに動きます。もしこれで <code>let</code> を <code>var</code> に置き換えたり、変数 <code>j</code> を削除して単純に <code>i</code> を内部関数で使うと、これは意図通りには動かないことに注意してください。</p>
-
-<h4 id=".E3.82.B9.E3.82.B3.E3.83.BC.E3.83.97.E3.81.AE.E8.A6.8F.E5.89.87_4" name=".E3.82.B9.E3.82.B3.E3.83.BC.E3.83.97.E3.81.AE.E8.A6.8F.E5.89.87_4">スコープの規則</h4>
-
-<p><code>let</code> によって宣言された変数は、その定義があったブロックと、その変数が再定義されていないすべてのサブブロックにスコープを持ちます。この場合、<code>let</code> は <code>var</code> に非常によく似た働きをします。おもな違いは <code>var</code> 変数のスコープがそれを囲む関数全体であることです:</p>
-
-<pre class="brush:js">function varTest() {
- var x = 31;
- if (true) {
- var x = 71; // 同じ変数!
- alert(x); // 71
- }
- alert(x); // 71
-}
-
-function letTest() {
- let x = 31;
-
- if (true) {
- let x = 71; // 違う変数
- alert(x); // 71
- }
- alert(x); // 31
-}</pre>
-
-<p><code>=</code> の右辺の式はブロックの内側になります。これは <code>let</code> 式や <code>let</code> 文のスコープの仕方と異なります:</p>
-
-<pre class="brush:js">function letTests() {
- let x = 10;
-
- // let 文
- let (x = x + 20) {
- alert(x); // 30
- }
-
- // let 式
- alert(let (x = x + 20) x); // 30
-
- // let 定義
- {
- let x = x + 20; // ここでの x は undefined と評価される
- alert(x); // undefined + 20 ==&gt; NaN
- }
-}</pre>
-
-<p>プログラムやクラス内では、<code>let</code> は <code>var</code> がするようにグローバルオブジェクトのプロパティを生成したりはせず、代わりにその文脈で文を評価する際に生成される暗黙的なブロックにプロパティを生成します。これが本質的に意味するのは、<code>let</code> はそれ以前に <code>var</code> を使って定義された変数を上書きできないということです。例えば:</p>
-
-<pre class="brush:js">// FF 2.0 b1 ではうまく動きません。"global" ではなく "42" を返してしまいます。
-var x = 'global';
-let x = 42;
-document.write( this.x + "&lt;br&gt;\n" );</pre>
-
-<p>このコードによって表示される出力は "42" ではなく、"global" です。</p>
-
-<p>{{ 原語併記("<b>暗黙的なブロック</b>", "implicit block") }} とは、波カッコで囲まれていないブロックのことで、JavaScript エンジンによって暗黙的に生成されます。</p>
-
-<p>関数内で <code>eval()</code> によって実行された <code>let</code> は、<code>var</code> がするように variable object (activation object or innermost binding rib) にプロパティを生成しません。その代りに、そのプログラムで文を評価する際に生成される暗黙的なブロックにプロパティを生成します。これは <code>eval()</code> がプログラムに作用する性質と前述のルールによる結果です。</p>
-
-<p>別の言い方をすれば、コードを実行するのに <code>eval()</code> を使う際、そのコードは独立したプログラムとみなされ、そのコードの周りに暗黙的なブロックを持つのです。</p>
-
-<h3 id="for_.E3.83.AB.E3.83.BC.E3.83.97.E4.B8.AD.E3.81.A7.E3.81.AE_let_.E3.82.B9.E3.82.B3.E3.83.BC.E3.83.97.E5.A4.89.E6.95.B0" name="for_.E3.83.AB.E3.83.BC.E3.83.97.E4.B8.AD.E3.81.A7.E3.81.AE_let_.E3.82.B9.E3.82.B3.E3.83.BC.E3.83.97.E5.A4.89.E6.95.B0"><code>for</code> ループ中での <code>let</code> スコープ変数</h3>
-
-<p><code>let</code> キーワードは単に <code>var</code> でやるようにして、<code>for</code> ループのスコープ内で局所的に変数を結びつけることにも使うことができます。</p>
-
-<pre class="brush:js">// obj を追加する
-var i = 0;
-
-for ( let i = i; i &lt; 10; i++ )
- document.write(i + "&lt;br&gt;\n");
-
- for ( let [name,value] in obj )
- document.write("名前: " + name + ", 値: " + value + "&lt;br&gt;\n");</pre>
-
-<h4 id=".E3.82.B9.E3.82.B3.E3.83.BC.E3.83.97.E3.81.AE.E8.A6.8F.E5.89.87_5" name=".E3.82.B9.E3.82.B3.E3.83.BC.E3.83.97.E3.81.AE.E8.A6.8F.E5.89.87_5">スコープの規則</h4>
-
-<pre><code>for (let <var>expr1</var>; <var>expr2</var>; <var>expr3</var>) <var>statement</var></code></pre>
-
-<p>この例で、<var>expr2</var>、<var>expr3</var> と <var>statement</var> は、<code>let <var>expr1</var></code> によって宣言されたブロックローカルな変数を含む暗黙的なブロックに囲まれます。これは上の 1 つ目のループで実証しています。</p>
-
-<pre class="eval">for (let <var>expr1</var> in <var>expr2</var>) <var>statement</var>
-for each(let <var>expr1</var> in <var>expr2</var>) <var>statement</var></pre>
-
-<p>これら両方の場合では、それぞれ <var>statement</var> を含む暗黙的なブロックができます。1 つ目の方は上の 2 つ目のループで示しています。</p>
-
-<h2 id=".E5.88.86.E5.89.B2.E4.BB.A3.E5.85.A5" name=".E5.88.86.E5.89.B2.E4.BB.A3.E5.85.A5">分割代入</h2>
-
-<p>{{ 原語併記("分割代入", "destructuring assignment") }} は、配列やオブジェクトのリテラルの構造とそっくりの構文を使って、配列やオブジェクトからデータを抽出することを可能にします。</p>
-
-<p>配列やオブジェクトのリテラル式は、データのアドホックな (その場限りの) 詰め合わせを作る簡単な方法を提供します。一度そのようなデータの詰め合わせを作ってしまえば、あなたはそれを使いたいように使うことができます。関数から返すことさえできます。</p>
-
-<p>分割代入を使うと、次の節の例で示すようなさまざまな興味深いことができるようになりますが、特に便利なのは、一つの文によって全体の構造を読み込むことができるという点です。</p>
-
-<p>この能力は Perl や Python などの言語に存在する機能に似ています。</p>
-
-<h2 id=".E4.BE.8B" name=".E4.BE.8B">例</h2>
-
-<p>分割代入は使用例を通じて説明するのが一番なので、ここではあなたが通読して学ぶためのいくつかの例を紹介します。</p>
-
-<h3 id=".E4.B8.80.E6.99.82.E5.A4.89.E6.95.B0.E3.81.AE.E4.BD.BF.E7.94.A8.E3.82.92.E9.81.BF.E3.81.91.E3.82.8B" name=".E4.B8.80.E6.99.82.E5.A4.89.E6.95.B0.E3.81.AE.E4.BD.BF.E7.94.A8.E3.82.92.E9.81.BF.E3.81.91.E3.82.8B">一時変数の使用を避ける</h3>
-
-<p>分割代入を使えば、例えば値を交換することができます:</p>
-
-<pre class="brush:js">var a = 1;
-var b = 3;
-
-[a, b] = [b, a];</pre>
-
-<p>このコードを実行後、 <var>b</var> は 1 に、<var>a</var> は 3 になります。分割代入がなければ、2 つの値の交換には一時変数 (あるいは一部の低級言語では <a class="external" href="http://ja.wikipedia.org/wiki/XOR%E4%BA%A4%E6%8F%9B%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0">XOR 交換のトリック</a>) が必要になります。</p>
-
-<p>同様に、3 つ以上の変数を順に交換することにも使えます。</p>
-
-<pre class="brush:js">var a = 'o';
-var b = "&lt;span style='color:green;'&gt;o&lt;/span&gt;";
-var c = 'o';
-var d = 'o';
-var e = 'o';
-var f = "&lt;span style='color:blue;'&gt;o&lt;/span&gt;";
-var g = 'o';
-var h = 'o';
-
-for (lp = 0; lp &lt; 40; lp++) {
- [a, b, c, d, e, f, g, h] = [b, c, d, e, f, g, h, a];
- document.write( a + '' + b + '' + c + '' + d + '' + e + '' + f + '' + g + '' + h + '' + "&lt;br /&gt;");
-}</pre>
-
-<p>このコードを実行すると、変数が循環する様子をカラフルな視覚情報として見ることができます。</p>
-
-<p>上で出てきたフィボナッチ数のジェネレータの例に戻ってみると、"i" と "j" の新しい値を単一のグループ代入文で計算することによって、一時変数 "t" を除去することができます。</p>
-
-<pre>function fib() {
- var i = 0, j = 1;
- while (true) {
- yield i;
- [i, j] = [j, i + j];
- }
-}
-
-var g = fib();
-
-for (let i = 0; i &lt; 10; i++)
- print(g.next());</pre>
-
-<h3 id=".E8.A4.87.E6.95.B0.E3.81.AE.E5.80.A4.E3.82.92.E8.BF.94.E3.81.99" name=".E8.A4.87.E6.95.B0.E3.81.AE.E5.80.A4.E3.82.92.E8.BF.94.E3.81.99">複数の値を返す</h3>
-
-<p>分割代入のおかげで、関数は複数の値を返すことができます。関数から配列を返すこと自体はいつでもできたものの、分割代入はさらなる柔軟性を提供します。</p>
-
-<pre><code>function f() {
- return [1, 2];
-}</code></pre>
-
-<p>見ての通り、すべての返り値を角カッコで囲んだ、配列に似た構文を使ってその結果を返します。この方法で任意の数の返り値を返すことができます。この例では、<code>f()</code> はその出力として <code>{{ mediawiki.external('1, 2') }}</code> を返します。</p>
-
-<pre><code>var a, b;
-[a, b] = f();
-document.write ("A is " + a + " B is " + b + "&lt;br&gt;\n");</code></pre>
-
-<p><code>['a, b'] = f()</code> というコマンドは、関数の返り値を角カッコ中の変数に順番に代入します。<var>a</var> は 1 にセットされ、<var>b</var> は 2 にセットされます。</p>
-
-<p>また、返り値を配列として受け取ることもできます。</p>
-
-<pre>var a = f();
-document.write ( "A is " + a );</pre>
-
-<p>この場合、<var>a</var> は値 1 と 2 を含む配列です。</p>
-
-<h3 id=".E3.82.AA.E3.83.96.E3.82.B8.E3.82.A7.E3.82.AF.E3.83.88.E3.82.92.E6.A8.AA.E6.96.AD.E3.81.97.E3.81.A6.E3.83.AB.E3.83.BC.E3.83.97.E3.81.99.E3.82.8B" name=".E3.82.AA.E3.83.96.E3.82.B8.E3.82.A7.E3.82.AF.E3.83.88.E3.82.92.E6.A8.AA.E6.96.AD.E3.81.97.E3.81.A6.E3.83.AB.E3.83.BC.E3.83.97.E3.81.99.E3.82.8B">オブジェクトを横断してループする</h3>
-
-<p>オブジェクトからデータを取り出すために、分割代入を使うこともできます:</p>
-
-<pre class="brush:js">let obj = { width: 3, length: 1.5, color: "orange" };
-
-for (let[name, value] in Iterator(obj)) {
- document.write ( "Name: " + name + ", Value: " + value + "&lt;br&gt;\n" );
-}</pre>
-
-<p>これは、オブジェクト <var>obj</var> の全てのキー/値の組についてループされ、それらの名前と値を表示します。この場合、出力は以下のようになります:</p>
-
-<pre>Name: width, Value: 3
-Name: length, Value: 1.5
-Name: color, Value: orange</pre>
-
-<p><code>obj</code> を囲む <code>Iterator()</code> は、JavaScript 1.7 では必須ではありません。しかし、<a href="/ja/New_in_JavaScript_1.8" title="ja/New_in_JavaScript_1.8">JavaScript 1.8</a> では必須になるでしょう。これは配列での分割代入を可能にするためです({{ Bug(366941) }} を参照)。</p>
-
-<h3 id=".E3.82.AA.E3.83.96.E3.82.B8.E3.82.A7.E3.82.AF.E3.83.88.E3.81.AE.E9.85.8D.E5.88.97.E3.82.92.E6.A8.AA.E6.96.AD.E3.81.97.E3.81.A6.E3.83.AB.E3.83.BC.E3.83.97.E3.81.99.E3.82.8B" name=".E3.82.AA.E3.83.96.E3.82.B8.E3.82.A7.E3.82.AF.E3.83.88.E3.81.AE.E9.85.8D.E5.88.97.E3.82.92.E6.A8.AA.E6.96.AD.E3.81.97.E3.81.A6.E3.83.AB.E3.83.BC.E3.83.97.E3.81.99.E3.82.8B">オブジェクトの配列を横断してループする</h3>
-
-<p>それぞれのオブジェクトから興味のあるフィールドだけを取り出しながら、オブジェクトの配列を横断してループすることもできます。</p>
-
-<pre class="brush:js">var people = [
- {
- name: "Mike Smith",
- family: {
- mother: "Jane Smith",
- father: "Harry Smith",
- sister: "Samantha Smith"
- },
- age: 35
- }, {
- name: "Tom Jones",
- family: {
- mother: "Norah Jones",
- father: "Richard Jones",
- brother: "Howard Jones"
- },
- age: 25
- }
-];
-
-for each (let {name: n, family: { father: f } } in people) {
- document.write ( "Name: " + n + ", Father: " + f + "&lt;br&gt;\n" );
-}</pre>
-
-<p>これは、<var>name</var> フィールドを <var>n</var> に、<var>family.father</var> フィールドを <var>f</var> に抜き出し、それを出力しています。これは <var>people</var> 配列のそれぞれのオブジェクトに対し行われます。出力はこのようになります:</p>
-
-<pre>Name: Mike Smith, Father: Harry Smith
-Name: Tom Jones, Father: Richard Jones</pre>
-
-<h3 id=".E4.B8.80.E9.83.A8.E3.81.AE.E8.BF.94.E3.82.8A.E5.80.A4.E3.82.92.E7.84.A1.E8.A6.96.E3.81.99.E3.82.8B" name=".E4.B8.80.E9.83.A8.E3.81.AE.E8.BF.94.E3.82.8A.E5.80.A4.E3.82.92.E7.84.A1.E8.A6.96.E3.81.99.E3.82.8B">一部の返り値を無視する</h3>
-
-<p>あなたはまた、興味のない返り値を無視することもできます:</p>
-
-<pre class="brush:js">function f() {
- return [1, 2, 3];
-}
-
-var [a, , b] = f();
-document.write ( "A is " + a + " B is " + b + "&lt;br&gt;\n" );</pre>
-
-<p>このコードを実行後、<var>a</var> は 1 になり、<var>b</var> は 3になります。値 2 は無視されます。あなたはこの方法で任意の(あるいは全ての)返り値を無視することができます。例えば:</p>
-
-<pre><code>[,,,] = f();</code></pre>
-
-<h3 id=".E6.AD.A3.E8.A6.8F.E8.A1.A8.E7.8F.BE.E3.81.AE.E3.83.9E.E3.83.83.E3.83.81.E3.81.8B.E3.82.89.E5.80.A4.E3.82.92.E5.8F.96.E3.82.8A.E5.87.BA.E3.81.99" name=".E6.AD.A3.E8.A6.8F.E8.A1.A8.E7.8F.BE.E3.81.AE.E3.83.9E.E3.83.83.E3.83.81.E3.81.8B.E3.82.89.E5.80.A4.E3.82.92.E5.8F.96.E3.82.8A.E5.87.BA.E3.81.99">正規表現のマッチから値を取り出す</h3>
-
-<p>正規表現の <code><a href="/ja/JavaScript/Reference/Global_Objects/RegExp/exec" title="ja/JavaScript/Reference/Global_Objects/RegExp/exec"> exec()</a></code> メソッドがマッチを見つけると、正規表現の全体にマッチした部分文字列を 1 つ目の要素に格納し、続いて正規表現内で括弧に囲まれたグループにマッチした部分文字列を順に格納した配列を返します。分割代入を使うと、全体のマッチを使う必要が無ければそれを無視して、配列の一部分のみを取り出すことが簡単にできるようになります。</p>
-
-<pre class="brush:js">// http / https / ftp 形式の URL にマッチする単純な正規表現
-var parsedURL = /^(\w+)\:\/\/([^\/]+)\/(.*)$/.exec(url);
-if (!parsedURL) return null;
-
-var [, protocol, fullhost, fullpath] = parsedURL;</pre>
diff --git a/files/ja/web/javascript/new_in_javascript/1.8.1/index.html b/files/ja/web/javascript/new_in_javascript/1.8.1/index.html
deleted file mode 100644
index d42b06d30e..0000000000
--- a/files/ja/web/javascript/new_in_javascript/1.8.1/index.html
+++ /dev/null
@@ -1,34 +0,0 @@
----
-title: JavaScript 1.8.1 の新機能
-slug: Web/JavaScript/New_in_JavaScript/1.8.1
-tags:
- - Firefox 3.5
- - Gecko 1.9.1
- - JavaScript
- - JavaScript 1.8.1
-translation_of: Archive/Web/JavaScript/New_in_JavaScript/1.8.1
----
-<div>{{jsSidebar("New_in_JS")}}</div>
-
-<p>JavaScript 1.8.1 は JavaScript の構文的な部分に関してはほんのわずかな更新しかありません。しかし、このリリースでの主な変更は、パフォーマンスを改善する <a class="internal" href="/Ja/SpiderMonkey/Internals/Tracing_JIT" title="Ja/SpiderMonkey/Internals/Tracing JIT">Tracemonkey just-in-time コンパイラ</a> の追加です。</p>
-
-<p>branch callback を削除して operation callback に置き換えるという注目すべき API の変更があります。<a class="external" href="http://groups.google.com/group/mozilla.dev.tech.js-engine/browse_thread/thread/a4d1fe147761aacb#" title="http://groups.google.com/group/mozilla.dev.tech.js-engine/browse_thread/thread/a4d1fe147761aacb#">詳細はこのニュースグループの投稿を参照してください</a>。</p>
-
-<h2 id="言語に関する追加">言語に関する追加</h2>
-
-<dl>
- <dt><a class="internal" href="/Ja/Core_JavaScript_1.5_Reference/Global_Objects/Object/GetPrototypeOf" rel="internal" title="Ja/Core JavaScript 1.5 Reference/Global Objects/Object/GetPrototypeOf"><code>Object.getPrototypeOf()</code></a></dt>
- <dd>この新しいメソッドは指定されたオブジェクトのプロトタイプを返します。</dd>
- <dt><a class="internal" href="/Ja/Using_native_JSON" title="Ja/Using native JSON">Using native JSON</a></dt>
- <dd>Firefox 3.5 は <a class="internal" href="/ja/JSON" title="ja/JSON">JSON</a> をネイティブでサポートします。.</dd>
- <dt>String オブジェクトの新しい trim メソッド</dt>
- <dd><a class="internal" href="/ja/Core_JavaScript_1.5_Reference/Global_Objects/String" rel="internal" title="ja/Core JavaScript 1.5 Reference/Global Objects/String"><code>String</code></a> オブジェクトが <a class="internal" href="/Ja/Core_JavaScript_1.5_Reference/Global_Objects/String/Trim" rel="internal" title="Ja/Core JavaScript 1.5 Reference/Global Objects/String/Trim"><code>trim()</code></a>、 <a class="internal" href="/Ja/Core_JavaScript_1.5_Reference/Global_Objects/String/TrimLeft" rel="internal" title="Ja/Core JavaScript 1.5 Reference/Global Objects/String/TrimLeft"><code>trimLeft()</code></a>、そして <a class="internal" href="/Ja/Core_JavaScript_1.5_Reference/Global_Objects/String/TrimRight" rel="internal" title="Ja/Core JavaScript 1.5 Reference/Global Objects/String/TrimRight"><code>trimRight()</code></a> メソッドが定義されました。</dd>
-</dl>
-
-<h2 id="他の改善">他の改善</h2>
-
-<ul>
- <li>オブジェクトおよび配列の初期化子によるプロパティの暗黙的な設定では JavaScript におけるセッターの定義を行わないようになりました。これはプロパティの値を設定するという振る舞いをより予測可能なものにします。詳細は <a class="new" href="../../../../web-tech/2009/04/29/object-and-array-initializers-should-not-invoke-setters-when-evaluated" rel="internal">オブジェクトおよび配列の初期化子は評価時にセッターの定義を行うべきではない</a> というブログ投稿を参照してください。</li>
-</ul>
-
-<p> </p>
diff --git a/files/ja/web/javascript/new_in_javascript/1.8.5/index.html b/files/ja/web/javascript/new_in_javascript/1.8.5/index.html
deleted file mode 100644
index 5cc0deb9dc..0000000000
--- a/files/ja/web/javascript/new_in_javascript/1.8.5/index.html
+++ /dev/null
@@ -1,143 +0,0 @@
----
-title: JavaScript 1.8.5 の新機能
-slug: Web/JavaScript/New_in_JavaScript/1.8.5
-tags:
- - ECMAScript5
- - Firefox 4
- - JavaScript
- - JavaScript 1.8.5
- - JavaScript_version_overviews
-translation_of: Archive/Web/JavaScript/New_in_JavaScript/1.8.5
----
-<div>
-<div>{{jsSidebar("New_in_JS")}}</div>
-</div>
-
-<p>JavaScript 1.8.5 は、Firefox4 に含まれる JavaScript のバージョンです。</p>
-
-<h2 id="New_functions" name="New_functions">新たな機能</h2>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">機能</th>
- <th scope="col">特徴</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td><code><a href="/ja/docs/JavaScript/Reference/Global_Objects/Object/create" title="JavaScript/Reference/Global Objects/Object/Create">Object.create</a></code></td>
- <td>指定されたプロトタイプオブジェクトおよびプロパティに基づくオブジェクトを生成します。{{bug("492840")}}</td>
- </tr>
- <tr>
- <td><code><a href="/ja/docs/JavaScript/Reference/Global_Objects/Object/defineProperty" title="JavaScript/Reference/Global Objects/Object/DefineProperty">Object.defineProperty</a></code></td>
- <td>指定された記述に基づいた名称のプロパティを、オブジェクトに追加します。</td>
- </tr>
- <tr>
- <td><code><a href="/ja/docs/JavaScript/Reference/Global_Objects/Object/defineProperties" title="JavaScript/Reference/Global Objects/Object/DefineProperties">Object.defineProperties</a></code></td>
- <td>指定された記述に基づく複数のプロパティを、オブジェクトに追加します。</td>
- </tr>
- <tr>
- <td><code><a href="/ja/docs/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor" title="JavaScript/Reference/Global Objects/Object/GetOwnPropertyDescriptor">Object.getOwnPropertyDescriptor</a></code></td>
- <td>オブジェクトの指定された名前のプロパティの詳細を返します。{{bug("505587")}}</td>
- </tr>
- <tr>
- <td><a href="/ja/docs/JavaScript/Reference/Global_Objects/Object/keys" title="JavaScript/Reference/Global Objects/Object/keys"><code>Object.keys</code></a></td>
- <td>オブジェクトのすべての列挙可能 (enumerable )なプロパティを配列の形式で返します。 {{bug("307791")}}</td>
- </tr>
- <tr>
- <td><a href="/ja/docs/JavaScript/Reference/Global_Objects/Object/getOwnPropertyNames" title="JavaScript/Reference/Global Objects/Object/getOwnPropertyNames"><code>Object.getOwnPropertyNames </code></a></td>
- <td>オブジェクトのすべてのプロパティを列挙可能の如何に関わらず (enumerable and non-enumerable)配列として返します。 {{bug("518663")}}</td>
- </tr>
- <tr>
- <td><a href="/ja/docs/JavaScript/Reference/Global_Objects/Object/preventExtensions" title="JavaScript/Reference/Global Objects/Object/preventExtensions"><code>Object.preventExtensions</code></a></td>
- <td>オブジェクトのいかなる拡張 (extensions)も禁止します。{{bug("492849")}}</td>
- </tr>
- <tr>
- <td><a href="/ja/docs/JavaScript/Reference/Global_Objects/Object/isExtensible" title="JavaScript/Reference/Global Objects/Object/isExtensible"><code>Object.isExtensible</code></a></td>
- <td>
- <p>オブジェクトが拡張可能かどうかを判断します。{{bug("492849")}}</p>
- </td>
- </tr>
- <tr>
- <td><a href="/ja/docs/JavaScript/Reference/Global_Objects/Object/seal" title="JavaScript/Reference/Global Objects/Object/seal"><code>Object.seal</code></a></td>
- <td>オブジェクトのプロパティが他のコードにより削除されるのを禁止(封印 (seal))します。{{bug("492845")}}</td>
- </tr>
- <tr>
- <td><a href="/ja/docs/JavaScript/Reference/Global_Objects/Object/isSealed" title="JavaScript/Reference/Global Objects/Object/isSealed"><code>Object.isSealed</code></a></td>
- <td>オブジェクトが封印されている (sealed)かどうかを判断します。{{bug("492845")}}</td>
- </tr>
- <tr>
- <td><a href="/ja/docs/JavaScript/Reference/Global_Objects/Object/freeze" title="JavaScript/Reference/Global Objects/Object/freezed"><code>Object.freeze</code></a></td>
- <td>オブジェクトを凍結 (Freeze)します。これにより、いかなるコードも凍結されたオブジェクトのプロパティの削除または変更ができなくなります。{{bug("492844")}}</td>
- </tr>
- <tr>
- <td><a href="/ja/docs/JavaScript/Reference/Global_Objects/Object/isFrozen" title="JavaScript/Reference/Global Objects/Object/isFrozen"><code>Object.isFrozen</code></a></td>
- <td>オブジェクトが凍結されているかどうかを判断します。{{bug("492844")}}</td>
- </tr>
- <tr>
- <td><a href="/ja/docs/JavaScript/Reference/Global_Objects/Array/isArray" title="JavaScript/Reference/Global Objects/Array/isArray"><code>Array.isArray </code></a></td>
- <td>与えられた変数が配列であるかどうかを調べます。{{bug("510537")}}</td>
- </tr>
- <tr>
- <td><a href="/ja/docs/JavaScript/Reference/Global_Objects/Date/toJSON" title="JavaScript/Reference/Global Objects/Date/toJSON"><code>Date.toJSON</code></a></td>
- <td>Dateオブジェクトを、JSON形式の文字列として返します。</td>
- </tr>
- <tr>
- <td><a href="/ja/docs/JavaScript/Reference/Global_Objects/Function/bind" title="JavaScript/Reference/Global_Objects/Function/bind"><code>Function.prototype.bind</code></a></td>
- <td>このメソッドが呼び出された際に与えられたコンテクスト(および引数)で、このメソッドを呼び出した関数自体を呼び出す、新しい関数を作成します。{{bug("429507")}}</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="New_ECMAScript5_features" name="New_ECMAScript5_features">ECMAScript5 における新たな特徴</h2>
-
-<ul>
- <li><code><a href="/ja/docs/JavaScript/Reference/Operators/Special/get" title="JavaScript/Reference/Operators/Special Operators/get Operator">get</a></code> および <code><a href="/ja/docs/JavaScript/Reference/Operators/Special/set" title="JavaScript/Reference/Operators/Special Operators/set Operator">set</a></code> 演算子は現在、数値型または文字列型の識別子を設定することができます。 {{bug("520696")}}</li>
- <li><a href="/ja/docs/JavaScript/Reference/Global_Objects/Function/apply" title="JavaScript/Reference/Global Objects/Function/apply"><code>Function.apply()</code></a> が引数として、配列の代わりに、配列に似たオブジェクトを設定できるようになりました。</li>
- <li><a href="/ja/docs/JavaScript/Strict_mode" title="JavaScript/Strict mode">strict モードのサポート</a></li>
- <li><a href="/ja/docs/JavaScript/Reference/Global_Objects/Array/toString" title="JavaScript/Reference/Global Objects/Array/toString"><code>Array.toString()</code></a> を配列以外のオブジェクトで呼び出した場合、 <a href="/ja/docs/JavaScript/Reference/Global_Objects/Array/join" title="JavaScript/Reference/Global Objects/Array/join"><code>join()</code></a> メソッドが有効な場合は <a href="/ja/docs/JavaScript/Reference/Global_Objects/Array/join" title="JavaScript/Reference/Global Objects/Array/join"><code>join()</code></a> メソッドを呼び出した結果を返し、そうでない場合はオブジェクトの <a href="/ja/docs/JavaScript/Reference/Global_Objects/Object/toString" title="JavaScript/Reference/Global Objects/Object/toString"><code>toString()</code></a> メソッドを呼び出した結果を返すように変更されました。</li>
-</ul>
-
-<h2 id="Other_standardization_work" name="Other_standardization_work">その他の標準化作業</h2>
-
-<p>ゲッターおよびセッターを定義する、複数の非標準な構文削除されました。ECMAScript 5で定義された構文は変更されていません。非常に難解かつ使用されているケースは稀な構文です。万が一、影響を被る場合、詳細はこの<a class="external" href="http://whereswalden.com/2010/04/16/more-spidermonkey-changes-ancient-esoteric-very-rarely-used-syntax-for-creating-getters-and-setters-is-being-removed/" title="http://whereswalden.com/2010/04/16/more-spidermonkey-changes-ancient-esoteric-very-rarely-used-syntax-for-creating-getters-and-setters-is-being-removed/">ブログポスト</a>を参照してください。</p>
-
-<h2 id="New_objects" name="New_objects">新たなオブジェクト</h2>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">オブジェクト</th>
- <th scope="col">詳細</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td><code><a href="/ja/docs/JavaScript/Reference/Global_Objects/Proxy" title="https://developer.mozilla.org/ja/JavaScript/Reference/Global_Objects/Proxy">Proxy</a></code></td>
- <td>JavaScript でのメタプログラミングを可能する、<code>Object</code> および <code>Function</code> のプロキシの作成のサポートが提供されます。</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Changes_to_global_objects" name="Changes_to_global_objects">グローバルオブジェクトの変更</h2>
-
-<dl>
- <dt>Date オブジェクトの ISO 8061 のサポート</dt>
- <dd><a href="/ja/docs/JavaScript/Reference/Global_Objects/Date" title="https://developer.mozilla.org/ja/JavaScript/Reference/Global_Objects/Date"><code>Date</code></a> オブジェクトの <a href="/ja/docs/JavaScript/Reference/Global_Objects/Date/parse" title="https://developer.mozilla.org/ja/JavaScript/Reference/Global_Objects/Date/parse"><code>parse()</code></a> メソッドは、シンプルなISO 8601形式の日付文字列をサポートします。</dd>
- <dt>グローバルオブジェクトが読み取り専用となる</dt>
- <dd><a href="/ja/docs/JavaScript/Reference/Global_Objects/NaN" title="JavaScript/Reference/Global Objects/NaN"><code>NaN</code></a> 、<a href="/ja/docs/JavaScript/Reference/Global_Objects/Infinity" title="JavaScript/Reference/Global Objects/Infinity"><code>Infinity</code></a> 、および <a href="/ja/docs/JavaScript/Reference/Global_Objects/undefined" title="JavaScript/Reference/Global Objects/undefined"><code>undefined</code></a> グローバルオブジェクトはECMAScript 5仕様に基づき、読み取り専用となりました。</dd>
-</dl>
-
-<h2 id="Additional_changes" name="Additional_changes">さらなる変更</h2>
-
-<ul>
- <li><a href="/ja/docs/JavaScript/Reference/Global_Objects/Object/Parent" title="JavaScript/Reference/Global Objects/Object/Parent"><code>obj.__parent__</code></a> および <code>obj.__count__</code> は廃止されました。廃止理由についてのいくつかの情報は以下を参照してください: <a class="external" href="http://whereswalden.com/2010/05/07/spidermonkey-change-du-jour-the-special-__parent__-property-has-been-removed/" title="http://whereswalden.com/2010/05/07/spidermonkey-change-du-jour-the-special-__parent__-property-has-been-removed/">SpiderMonkey change du jour: the special __parent__ property has been removed</a> {{bug("551529")}} &amp; {{bug("552560")}}</li>
- <li><a href="/ja/docs/Using_native_JSON" title="Using native JSON"><code>JSON.parse()</code></a> において、末尾のカンマは許容されません。</li>
-</ul>
-
-<h2 id="JavaScript_(SpiderMonkey)_API_changes" name="JavaScript_(SpiderMonkey)_API_changes">JavaScript (SpiderMonkey) API の変更</h2>
-
-<div class="note"><strong>註:</strong> <a href="/ja/docs/JSLocaleCallbacks" title="JSLocaleCallbacks">JSLocaleCallbacks</a> 構造体において規定されているロケールコールバックは、渡されたメモリバッファを解放しません。このバッファは SpiderMonkey ランタイムによって管理されます。</div>
-
-<p><a href="/ja/docs/SpiderMonkey/JSAPI_Reference/JS_NewString" title="SpiderMonkey/JSAPI Reference/JS NewString"><code>JS_NewString()</code></a> 関数は SpiderMonkey 1.8.5 で削除されました。代わりに <a href="/ja/docs/SpiderMonkey/JSAPI_Reference/JS_NewStringCopyN" title="SpiderMonkey/JSAPI Reference/JS NewStringCopyN"><code>JS_NewStringCopyN()</code></a> を使用してください。</p>
diff --git a/files/ja/web/javascript/new_in_javascript/1.8/index.html b/files/ja/web/javascript/new_in_javascript/1.8/index.html
deleted file mode 100644
index f26879ece3..0000000000
--- a/files/ja/web/javascript/new_in_javascript/1.8/index.html
+++ /dev/null
@@ -1,123 +0,0 @@
----
-title: JavaScript 1.8 の新機能
-slug: Web/JavaScript/New_in_JavaScript/1.8
-tags:
- - JavaScript
- - JavaScript_version_overviews
-translation_of: Archive/Web/JavaScript/New_in_JavaScript/1.8
----
-<div>
-<div>{{jsSidebar("New_in_JS")}}</div>
-</div>
-
-<p>JavaScript 1.8 は(<a href="/ja/docs/Firefox_3_for_developers" title="Firefox_3_for_developers">Firefox 3</a> に組み込まれている) Gecko 1.9 の一部分です。これは <a href="/ja/docs/JavaScript/New_in_JavaScript/1.7" title="New_in_JavaScript_1.7">JavaScript 1.7</a> よりは大きな更新ではありませんが、ECMAScript 4/JavaScript 2 の進歩に追随するための更新がいくつか含まれています。このリリースは <a href="/ja/docs/JavaScript/New_in_JavaScript/1.6" title="New_in_JavaScript_1.6">JavaScript 1.6</a> および <a href="/ja/docs/JavaScript/New_in_JavaScript/1.7" title="New_in_JavaScript_1.7">JavaScript 1.7</a> で仕様化された新機能の全てを含んでいます。</p>
-
-<p>JavaScript 1.8 の開発状況を追うためには、{{Bug(380236)}} を参照してください。この文書の地位については {{Bug(421027)}} を参照してください。</p>
-
-<h2 id="JavaScript_1.8_.E3.81.AE.E4.BD.BF.E7.94.A8" name="JavaScript_1.8_.E3.81.AE.E4.BD.BF.E7.94.A8">JavaScript 1.8 の使用</h2>
-
-<p>JavaScript 1.8 のいくつかの新機能を HTML で使用するためには、以下のようにしてください:</p>
-
-<pre class="brush: js"><code>&lt;script type="application/javascript;version=1.8"&gt; ... あなたのコード ... &lt;/script&gt;</code></pre>
-
-<p>もう 1 つの(推奨されない)方法として、<code>&lt;script&gt;</code> の非推奨の language 属性を使い、"JavaScript1.8" と定義することでもできます。</p>
-
-<p><a href="/ja/docs/Introduction_to_the_JavaScript_shell" title="Introduction_to_the_JavaScript_shell">JavaScript shell</a> や JavaScript XPCOM コンポーネント、XUL の <code>&lt;script&gt;</code> 要素を使うときは、JS の最新バージョン(Mozilla 1.9 では JS1.8)が自動的に使われます({{Bug(381031)}}, {{Bug(385159)}})。</p>
-
-<p>新たなキーワードである "yield" と "let" を使う必要がある機能は、バージョン 1.7 以上を指定しなければなりません。 なぜなら、既存のコードがそれらのキーワードを変数や関数の名前として使っているかもしれないからです。新しいキーワードを導入していない機能(例えばジェネレータ式)は、JavaScript のバージョンを指定することなく使うことができます。</p>
-
-<h2 id=".E5.BC.8F.E3.82.AF.E3.83.AD.E3.83.BC.E3.82.B8.E3.83.A3" name=".E5.BC.8F.E3.82.AF.E3.83.AD.E3.83.BC.E3.82.B8.E3.83.A3">式クロージャ</h2>
-
-<p>この追加機能は、典型的な <a class="external" href="http://en.wikipedia.org/wiki/Lambda_calculus#Lambda_calculus_and_programming_languages">ラムダ記法</a>(<a class="external" href="http://ja.wikipedia.org/wiki/%E3%83%A9%E3%83%A0%E3%83%80%E8%A8%88%E7%AE%97#.E3.83.A9.E3.83.A0.E3.83.80.E8.A8.88.E7.AE.97.E3.81.A8.E3.83.97.E3.83.AD.E3.82.B0.E3.83.A9.E3.83.9F.E3.83.B3.E3.82.B0.E8.A8.80.E8.AA.9E">日本語版</a>)に似た表現を与える、単純な関数を書くための簡略表現に過ぎません。</p>
-
-<p><a href="/ja/docs/JavaScript/New_in_JavaScript/1.7" title="New_in_JavaScript_1.7">JavaScript 1.7</a> 以前:</p>
-
-<pre>function(x) { return x * x; }</pre>
-
-<p>JavaScript 1.8:</p>
-
-<pre>function(x) x * x</pre>
-
-<p>この構文を使うことによって、中括弧と 'return' 文を省くことができます(それらは暗黙的に補われます)。この方式でコードを書くことには、コードを構文的に短くするメリットしかありません。</p>
-
-<p><strong>例:</strong></p>
-
-<p>イベントリスナーを渡す簡略表現:</p>
-
-<pre>document.addEventListener("click", function() false, true);</pre>
-
-<p><a href="/ja/docs/JavaScript/New_in_JavaScript/1.6" title="New_in_JavaScript_1.6">JavaScript 1.6</a> からの array のメソッドである some とともにこの記法を使うと:</p>
-
-<pre>elems.some(function(elem) elem.type == "text");</pre>
-
-<h2 id=".E3.82.B8.E3.82.A7.E3.83.8D.E3.83.AC.E3.83.BC.E3.82.BF.E5.BC.8F" name=".E3.82.B8.E3.82.A7.E3.83.8D.E3.83.AC.E3.83.BC.E3.82.BF.E5.BC.8F">ジェネレータ式</h2>
-
-<p>この追加により、ジェネレータ(<a href="/ja/docs/JavaScript/New_in_JavaScript/1.7" title="New_in_JavaScript_1.7">JavaScript 1.7</a> で導入されたものです)を簡単に作成することが可能になります。ジェネレータを生成するには、通常は内部に yield を含むカスタム関数を作成しなければなりませんでしたが、この追加により、配列内包に似た構文を使って同じ性質のジェネレータ文を作成することができるようになります。</p>
-
-<p><a href="/ja/docs/JavaScript/New_in_JavaScript/1.7" title="New_in_JavaScript_1.7">JavaScript 1.7</a> では、あるオブジェクトのためのカスタムジェネレータを作成するために、以下のようなものを書くことでしょう:</p>
-
-<pre class="brush:js">function add3(obj) {
- for ( let i in obj )
- yield i + 3;
-}
-
-let it = add3(someObj);
-
-try {
- while (true) {
- document.write(it.next() + "&lt;br&gt;\n");
- }
-} catch (err if err instanceof StopIteration) {
- document.write("End of record.&lt;br&gt;\n");
-}
-</pre>
-
-<p>JavaScript 1.8 では、ジェネレータ式を代わりに使うことで、カスタムジェネレータ関数を作成する必要性が無くなります:</p>
-
-<pre class="brush:js">let it = (i + 3 for (i in someObj));
-
-try {
- while (true) {
- document.write(it.next() + "&lt;br&gt;\n");
- }
-} catch (err if err instanceof StopIteration) {
- document.write("End of record.&lt;br&gt;\n");
-}
-</pre>
-
-<p>ジェネレータ式は、関数に値として渡すこともできます。これは配列があらかじめ生成される典型的な配列内包の場合と違って、本当に必要とされるまでジェネレータが実行されないので、特に注目に値します。その違いの例を挙げます:</p>
-
-<p>JavaScript 1.7 の配列内包を使った場合</p>
-
-<pre class="brush:js">handleResults([ i for ( i in obj ) if ( i &gt; 3 ) ]);
-
-function handleResults( results ) {
- for ( let i in results )
- // ...
-}
-</pre>
-
-<p>JavaScript 1.8 のジェネレータ式を使った場合</p>
-
-<pre class="brush:js">handleResults( i for ( i in obj ) if ( i &gt; 3 ) );
-
-function handleResults( results ) {
- for ( let i in results )
- // ...
-}
-</pre>
-
-<p>この 2 つの例の大きな違いは、配列内包を使った場合には配列を内包するときと繰り返し処理を行うときの 2 度 "obj" 構造に対してループが実行されるのに対して、ジェネレータ式を使った場合には 1 度しかループが実行されずに済むという点です。</p>
-
-<h2 id=".E3.81.95.E3.82.89.E3.81.AA.E3.82.8B_Array_.E3.81.AE.E6.8B.A1.E5.BC.B5" name=".E3.81.95.E3.82.89.E3.81.AA.E3.82.8B_Array_.E3.81.AE.E6.8B.A1.E5.BC.B5">さらなる Array の拡張</h2>
-
-<p>JavaScript 1.8 では、 <code><a href="/ja/docs/JavaScript/Reference/Global_Objects/Array" title="JavaScript/Reference/Global_Objects/Array">Array</a></code> オブジェクトに 2 つの新しい繰り返しのメソッドが導入されました:</p>
-
-<ul>
- <li><code><a href="/ja/docs/JavaScript/Reference/Global_Objects/Array/reduce" title="JavaScript/Reference/Objects/Array/reduce">reduce()</a></code> - 配列の全ての要素に関数を実行し、直前の呼び出しから結果を収集します。</li>
- <li><code><a href="/ja/docs/JavaScript/Reference/Global_Objects/Array/reduceRight" title="JavaScript/Reference/Objects/Array/reduceRight">reduceRight()</a></code> - 配列の全ての要素に関数を実行し、直前の呼び出しから結果を収集しますが、逆から実行します。</li>
-</ul>
-
-<h2 id="for..in.E3.80.80.E3.81.AE.E5.88.86.E9.85.8D.E6.96.B9.E6.B3.95_.E3.81.AE.E5.A4.89.E6.9B.B4" name="for..in.E3.80.80.E3.81.AE.E5.88.86.E9.85.8D.E6.96.B9.E6.B3.95_.E3.81.AE.E5.A4.89.E6.9B.B4">for..in の分配方法の変更</h2>
-
-<p>JavaScript 1.8 のリリースで生じた変更に、JavaScript 1.7 で導入された配列のキー/値の組への<a class="internal" href="/ja/docs/JavaScript/New_in_JavaScript/1.7" title="New in JavaScript 1.7">分割代入</a>に関連するバグ修正があります。これまでは for ( var [key, value] in array ) を使うことで、配列のキー/値の組を分割代入することができました。しかしこのせいで、配列の配列において値を分割代入することが不可能になっていました。現在この問題は解決しています。({{Bug("366941")}})</p>
diff --git a/files/ja/web/javascript/new_in_javascript/index.html b/files/ja/web/javascript/new_in_javascript/index.html
deleted file mode 100644
index db95fd3afe..0000000000
--- a/files/ja/web/javascript/new_in_javascript/index.html
+++ /dev/null
@@ -1,78 +0,0 @@
----
-title: JavaScript の新機能
-slug: Web/JavaScript/New_in_JavaScript
-translation_of: Archive/Web/JavaScript/New_in_JavaScript
----
-<div>{{jsSidebar("New_in_JS")}}</div>
-
-<p>このページはJavaScriptバージョン履歴の情報とFirefoxのようなMozilla/SpiderMonkeyベースのJavaScriptアプリケーションの実装状況を表示します。</p>
-
-<h2 id="ECMAScript_versions">ECMAScript versions</h2>
-
-<dl>
- <dt><a href="/en-US/docs/Web/JavaScript/Language_Resources">Language resources</a></dt>
- <dd>JavaScript言語の標準になっている、ECMAScript standardsを学ぶことが出来ます。</dd>
- <dt><a href="/en-US/docs/Web/JavaScript/New_in_JavaScript/ECMAScript_5_support_in_Mozilla">ECMAScript 5 support</a></dt>
- <dd>Mozillaベースのエンジン(RhinoやSpidermonkeyなど)や製品におけるECMA-262 Edition 5.1の実装状況を表します。</dd>
- <dt><a href="/en-US/docs/Web/JavaScript/New_in_JavaScript/ECMAScript_6_support_in_Mozilla">ECMAScript 6 support</a></dt>
- <dd>Mozillaベースのエンジン(RhinoやSpidermonkeyなど)や製品におけるECMA-262 Edition 6の実装状況を表します。</dd>
- <dt><a href="/en-US/docs/Web/JavaScript/New_in_JavaScript/ECMAScript_7_support_in_Mozilla">ECMAScript 7 support</a></dt>
- <dd>Mozillaベースのエンジン(RhinoやSpidermonkeyなど)や製品におけるECMA-262 Edition 7の実装状況を表します。</dd>
-</dl>
-
-<h2 id="JavaScript_リリースノート">JavaScript リリースノート</h2>
-
-<dl>
- <dt><a href="/en-US/docs/Web/JavaScript/New_in_JavaScript/Firefox_JavaScript_changelog">Firefox JavaScript changelog</a></dt>
- <dd>Firefox5とそれ以降のJavaScriptのチェンジログについてはこの項目を参照してください。</dd>
- <dt> </dt>
- <dt>Chrome JavaScript changelog</dt>
- <dd>(TODO). See this changelog for JavaScript features implemented in Chrome releases.</dd>
-</dl>
-
-<h2 id="JavaScript_versions">JavaScript versions</h2>
-
-<p><strong>Deprecated</strong> ({{deprecated_inline()}}). The explicit versioning and opt-in of language features was Mozilla-specific and <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=867609">is in process of being removed</a>. Firefox 4 was the last version which referred to an JavaScript version (1.8.5). With new ECMA standards, JavaScript language features are now often mentioned with their initial definition in ECMA-262 Editions such as Edition 6 (ES6).</p>
-
-<p>JavaScript was released as version 1.0 in March 1996 in Netscape Navigator 2.0 and Internet Explorer 2.0.</p>
-
-<dl>
- <dt><a href="/en-US/docs/Web/JavaScript/New_in_JavaScript/1.1">JavaScript 1.1</a></dt>
- <dd>Version shipped in Netscape Navigator 3.0. Released on August 19, 1996.</dd>
- <dt><a href="/en-US/docs/Web/JavaScript/New_in_JavaScript/1.2">JavaScript 1.2</a></dt>
- <dd>Version shipped in Netscape Navigator 4.0-4.05. Released on June 11, 1997.</dd>
- <dt><a href="/en-US/docs/Web/JavaScript/New_in_JavaScript/1.3">JavaScript 1.3</a></dt>
- <dd>Version shipped in Netscape Navigator 4.06-4.7x. Released on October 19, 1998.<br>
- Standardization work to be compliant with ECMA-262 1st and 2nd Edition.</dd>
- <dt><a href="/en-US/docs/Web/JavaScript/New_in_JavaScript/1.4">JavaScript 1.4</a></dt>
- <dd>Version shipped in Netscape's server side JavaScript. Released in 1999.</dd>
- <dt><a href="/en-US/docs/Web/JavaScript/New_in_JavaScript/1.5">JavaScript 1.5</a></dt>
- <dd>Version shipped in Netscape Navigator 6.0 and Firefox 1.0. Release on November 14, 2000.<br>
- 標準化団体の ECMA-262 3rd Editionに準拠しています。</dd>
- <dt><a href="/en-US/docs/Web/JavaScript/New_in_JavaScript/1.6">JavaScript 1.6</a></dt>
- <dd>Version shipped in Firefox 1.5. Released in November 2005.<br>
- ECMAScript for XML (E4X)やnew <code>Array</code> methods plus <code>String</code> and <code>Array</code> generics.</dd>
- <dt><a href="/en-US/docs/Web/JavaScript/New_in_JavaScript/1.7">JavaScript 1.7</a></dt>
- <dd>Version shipped in Firefox 2. Released in October 2006.<br>
- Includes generators, iterators, array comprehensions, <code>let</code> expressions, and destructuring assignment.</dd>
- <dt><a href="/en-US/docs/Web/JavaScript/New_in_JavaScript/1.8">JavaScript 1.8</a></dt>
- <dd>Version shipped in Firefox 3. Released in June 2008.<br>
- Includes expression closures, generator expressions and <code>Array.reduce()</code></dd>
- <dt><a href="/en-US/docs/Web/JavaScript/New_in_JavaScript/1.8.1">JavaScript 1.8.1</a></dt>
- <dd>Version shipped in Firefox 3.5. Released on <span class="st">June 30, 2009.<br>
- Includes the TraceMonkey JIT and supports native JSON.</span></dd>
- <dt>JavaScript 1.8.2</dt>
- <dd>Version shipped in Firefox 3.6. Released June 22, 2009.<br>
- Includes only minor changes.</dd>
- <dt><a href="/en-US/docs/Web/JavaScript/New_in_JavaScript/1.8.5">JavaScript 1.8.5</a></dt>
- <dd>Version shipped in Firefox 4. Released July 27, 2010.<br>
- Includes many new features for ECMA-262 Edition 5 compliance.<br>
- This is the last JavaScript version.</dd>
-</dl>
-
-<h2 id="Features_still_requiring_version_opt-in">Features still requiring version opt-in</h2>
-
-<dl>
- <dt><a href="/en-US/docs/Web/JavaScript/Reference/Statements/let"><code>let</code> statement</a></dt>
- <dd>The <code>let</code> statement requires the JavaScript version 1.7 (or higher) opt-in. See {{bug(932517)}} and {{bug(932513)}}.</dd>
-</dl>
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: &lt;arr&gt;, 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: &lt;arr&gt;, index: 0, removed: [ "Khalid" ], addedCount: 0 }]
-
-Array.unobserve(persons, function (changes) {
- console.log(changes);
-});
-
-persons.push('Abdullah');
-// [{type: "splice", object: &lt;arr&gt;, 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 &gt;= source.byteLength) {
- var nextOffset = 0;
- var leftBytes = source.byteLength;
- var wordSizes = [8, 4, 2, 1];
- wordSizes.forEach(function(_wordSize_) {
- if (leftBytes &gt;= _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 &lt; 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&gt;<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 =&gt; 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 =&gt; 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 &gt; 2000) year];
-// [ 2006, 2010, 2014 ]
-[for (year of years) if (year &gt; 2000) if(year &lt; 2010) year];
-// [ 2006], the same as below:
-[for (year of years) if (year &gt; 2000 &amp;&amp; year &lt; 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 =&gt; i*i);
-[for (i of numbers) i*i ];
-// all are [ 1, 4, 9 ]
-
-numbers.filter(function (i) { return i &lt; 3 });
-numbers.filter(i =&gt; i &lt; 3);
-[for (i of numbers) if (i &lt; 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 &gt; 1) for (j of letters) if(j &gt; "a") i+j]
-// ["2b", "2c", "3b", "3c"], the same as below:
-
-[for (i of numbers) for (j of letters) if (i &gt; 1) if(j &gt; "a") i+j]
-// ["2b", "2c", "3b", "3c"]
-
-[for (i of numbers) if (i &gt; 1) [for (j of letters) if(j &gt; "a") i+j]]
-// [["2b", "2c"], ["3b", "3c"]], not the same as below:
-
-[for (i of numbers) [for (j of letters) if (i &gt; 1) if(j &gt; "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>[()=&gt;x for (x of [0, 1, 2])][1]() // 2</code></li>
- <li>新: <code>[for (x of [0, 1, 2]) ()=&gt;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 &gt; 2000) year);
-// generator function which yields 2006, 2010, and 2014
-
-(for (year of years) if (year &gt; 2000) if(year &lt; 2010) year);
-// generator function which yields 2006, the same as below:
-
-(for (year of years) if (year &gt; 2000 &amp;&amp; year &lt; 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 &lt; 3) {
- yield i * 1;
- }
- }
-})()
-
-// Generator comprehension
-(for (i of numbers) if (i &lt; 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>[...(()=&gt;x for (x of [0, 1, 2]))][1]() // 2</code></li>
- <li>新: <code>[...(for (x of [0, 1, 2]) ()=&gt;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>
diff --git a/files/ja/web/javascript/server-side_javascript/index.html b/files/ja/web/javascript/server-side_javascript/index.html
deleted file mode 100644
index e56ee2e096..0000000000
--- a/files/ja/web/javascript/server-side_javascript/index.html
+++ /dev/null
@@ -1,11 +0,0 @@
----
-title: Server-Side JavaScript
-slug: Web/JavaScript/Server-Side_JavaScript
-tags:
- - backend
- - serverside javascript
-translation_of: Archive/Web/Server-Side_JavaScript
----
-<p>Here's a radical idea: Use one language to write entire Web apps -- and have that language be the one that billions of web pages every day already use.</p>
-<p>Sounds obvious doesn't it, but for at least the first twelve years of the Web's evolution, developers have pretty much had to use different languages on the server than what they use in the browser which leads to segregated teams, disaprate know-how, and at times plenty of server-side gymnastics with string manipulation to generate HTML or Ajax pages. Of course the simplicity of using JavaScript on the server was part of Netscape's original vision back in the day with Netscape LiveWire. But that was when 350 MHz servers were the best thing you could buy and long before Mozilla emerged from the Netscape organization to continue to advance the state of Web technologies. Today with computing cycles having increased more than 10-fold and Mozilla's work on <a href="/ja/docs/Rhino" title="Rhino">Rhino </a>(JavaScript interpreter in Java) and <a href="/ja/docs/SpiderMonkey" title="SpiderMonkey">SpiderMonkey </a>(JavaScript interpreter in C) and <a href="/ja/docs/JavaScript" title="JavaScript">JavaScript </a>itself, we have very solid foundations for JavaScript to become extraordinarily useful and applicable on the server-side again -- this time with <a class="external" href="http://www.aptana.com/jaxer/benchmarks" title="http://www.aptana.com/jaxer/benchmarks">performance in the same range</a> as with other popular server-side environments like PHP and Ruby on Rails. And with <a class="external" href="http://weblogs.mozillazine.org/roadmap/archives/2008/08/tracemonkey_javascript_lightsp.html" title="http://weblogs.mozillazine.org/roadmap/archives/2008/08/tracemonkey_javascript_lightsp.html">TraceMonkey</a> to be available soon, JavaScript (both client side and server-side) could see 20x to 40x speed improvements according to Brendan Eich, Mozilla CTO and creator of JavaScript. Server-Side JavaScript is another way that, as <a class="external" href="http://arstechnica.com/news.ars/post/20080822-firefox-to-get-massive-javascript-performance-boost.html" title="http://arstechnica.com/news.ars/post/20080822-firefox-to-get-massive-javascript-performance-boost.html">this article quotes</a> Brendan, "that Mozilla wants to 'get people thinking about JavaScript as a more general-purpose language' and show them that 'it really is a platform for writing full applications.'"</p>
-<p><a class="external" href="http://en.wikipedia.org/wiki/SSJS" title="http://en.wikipedia.org/wiki/SSJS">Many vendors</a> today are embedding Mozilla Rhino or Mozilla SpiderMonkey into Web server environments. And some like Aptana with the open source <a class="external" href="http://www.aptana.com/jaxer" title="http://www.aptana.com/jaxer">Jaxer server</a> actually embed the entire Mozilla Firefox browser engine (which includes SpiderMonkey) within a Web server to enable server-side Ajax and server-side DOM access in addition to server-side execution of JavaScript.</p>