diff options
Diffstat (limited to 'files/zh-cn/web/javascript/new_in_javascript/1.8/index.html')
-rw-r--r-- | files/zh-cn/web/javascript/new_in_javascript/1.8/index.html | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/files/zh-cn/web/javascript/new_in_javascript/1.8/index.html b/files/zh-cn/web/javascript/new_in_javascript/1.8/index.html new file mode 100644 index 0000000000..d69d021c25 --- /dev/null +++ b/files/zh-cn/web/javascript/new_in_javascript/1.8/index.html @@ -0,0 +1,39 @@ +--- +title: New in JavaScript 1.8 +slug: Web/JavaScript/New_in_JavaScript/1.8 +tags: + - JavaScript + - 版本 +translation_of: Archive/Web/JavaScript/New_in_JavaScript/1.8 +--- +<div>{{jsSidebar("New_in_JS")}}</div> + +<p>以下为JavaScript 1.8的更新日志。JavaScript 1.8 是 Gecko 1.9(已合并在 <a href="/cn/Firefox_3" title="cn/Firefox_3">Firefox 3</a> 中)的一部分。参见 {{ Bug("380236") }} 以跟踪 JavaScript 1.8。</p> + +<h3 id=".E4.BD.BF.E7.94.A8_JavaScript_1.8" name=".E4.BD.BF.E7.94.A8_JavaScript_1.8">使用 JavaScript 1.8</h3> + +<p>为了可以在 HTML 中使用 JavaScript 1.8 的新特性,需要这样写:</p> + +<pre class="eval"> <script type="application/javascript;version=1.8"> ... 你的代码 ... </script> +</pre> + +<p>另一种方法(不推荐)是使用旧式的 <script> 属性 language,把它定义为 "JavaScript1.8"。</p> + +<p>在使用 <a href="https://developer.mozilla.org/zh-CN/docs/Mozilla/Projects/SpiderMonkey/Introduction_to_the_JavaScript_shell" title="Cn/Introduction_to_the_JavaScript_shell">JavaScript shell</a> 、JavaScript XPCOM 组件,或者 XUL <code><script></code> 元素的时候,将自动启用最新的JS版本(Mozilla 1.9中的 JS1.8)({{ Bug("381031") }}, {{ Bug("385159") }})。</p> + +<p>如果需要使用新的关键字 "yield" 和 "let",你需要指定是1.7版本或者更高的版本,因为现有的代码可能会把这两个关键字用作变量名或者函数名。如果要使用的新特性没有引入任何新的关键字(例如生成器表达式),就可以不指定 JavaScript 的版本。</p> + +<h2 id="JavaScript_1.8新特性">JavaScript 1.8新特性</h2> + +<ul> + <li>{{jsxref("Operators/Expression_Closures", "Expression Closures", "", 1)}}.</li> + <li><a href="/zh-CN/docs/Web/JavaScript/Guide/Iterators_and_Generators">生成器表达式</a>。生成器表达式可以让你方便地创建生成器(在JavaScript1.7中引入)。通常你需要创建一个内含yield的自定义函数来得到一个生成器,而生成器表达式可以让你使用类似数组的语法来达到同样的目的。</li> + <li><a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce"><code>Array.prototype.reduce()</code></a></li> + <li><a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/ReduceRight"><code>Array.prototype.reduceRight()</code></a></li> +</ul> + +<h2 id="JavaScript_1.8功能更新">JavaScript 1.8功能更新</h2> + +<h3 id="对for..in解构的修改"><code>对for..in解构的修改</code></h3> + +<p>JavaScript1.8中的一个修改是对JavaScript1.7中引入的数组键值结构相关的bug修复。之前可以用<code>for ( var [key, value] in array )的方式来解构一个数组的键值。但是,这也让对数组的数组的键值解构变得不可能(比如一个迭代器返回一个当前键值对的数组)。现在这个问题可以用for ( var [key, value] in Iterator(array))来解决</code>({{ Bug("366941") }})。</p> |