uTools-Manuals/docs/javascript/ECMAScript_7_support_in_Mozilla.html
2019-04-21 11:50:48 +08:00

52 lines
6.6 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<article id="wikiArticle">
<div></div>
<p>下一代 ECMAScript 是指在 ECMAScript 2015 被推出后的 ECMA-262 标准(通常被称为 <a href="/en-US/docs/Web/JavaScript">JavaScript</a>)的新特性。新版本的 ECMAScript 规范会每年发布。</p>
<p>你可以在 <a class="external" href="https://github.com/tc39/ecma262" rel="noopener">tc39/ecma262</a> 这个仓库中看见当前的规范草案。</p>
<p><a class="external" href="https://mail.mozilla.org/listinfo/es-discuss" rel="noopener">es-discuss</a> 是一个关于 ECMAScript 标准有关反馈的渠道。</p>
<h2 id="ECMAScript_2016">ECMAScript 2016</h2>
<p>下面的 ECMAScript 2016 特性已实现:</p>
<p> </p>
<ul>
<li><a href="Reference/Global_Objects/Array/includes" title="includes() 方法用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回 true否则返回false。"><code>Array.prototype.includes()</code></a> (Firefox 43)</li>
<li><a href="Reference/Global_Objects/TypedArray/includes" title="includes()方法判断类型化数组中是否含有特定元素并相应返回true 或者false 这个方法的算法和Array.prototype.includes()相同。 TypedArray 是这里的 类型化数组 之一。"><code>TypedArray.prototype.includes()</code></a> (Firefox 43)</li>
</ul>
<h2 id="ECMAScript_2017">ECMAScript 2017</h2>
<p>下面的 ECMAScript 2017 特性已实现:</p>
<p> </p>
<ul>
<li><a href="Reference/Global_Objects/Object/values" title="Object.values()方法返回一个给定对象自身的所有可枚举属性值的数组值的顺序与使用for...in循环的顺序相同 ( 区别在于 for-in 循环枚举原型链中的属性 )。"><code>Object.values()</code></a><a href="Reference/Global_Objects/Object/entries" title="The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request."><code>Object.entries()</code></a> (Firefox 47)</li>
<li><a href="Reference/Global_Objects/String/padEnd" title="padEnd()  方法会用一个字符串填充当前字符串(如果需要的话则重复填充),返回填充后达到指定长度的字符串。从当前字符串的末尾(右侧)开始填充。"><code>String.prototype.padEnd()</code></a> (Firefox 48)</li>
<li><a href="Reference/Global_Objects/String/padStart" title="padStart() 方法用另一个字符串填充当前字符串(重复,如果需要的话),以便产生的字符串达到给定的长度。填充从当前字符串的开始(左侧)应用的。"><code>String.prototype.padStart()</code></a> (Firefox 48)</li>
<li><a href="Reference/Global_Objects/Object/getOwnPropertyDescriptors" title="Object.getOwnPropertyDescriptors() 方法用来获取一个对象的所有自身属性的描述符。"><code>Object.getOwnPropertyDescriptors()</code></a> (Firefox 50)</li>
<li>异步函数
<ul>
<li><a href="Reference/Statements/async_function" title="async function 声明用于定义一个返回 AsyncFunction 对象的异步函数。异步函数是指通过事件循环异步执行的函数,它会通过一个隐式的 Promise 返回其结果。但是如果你的代码使用了异步函数,它的语法和结构会更像是标准的同步函数。"><code>异步函数语句</code></a> (Firefox 52)</li>
<li><a class="new" href="Reference/Operators/async_function" rel="nofollow" title="此页面仍未被本地化, 期待您的翻译!"><code>异步函数表达式</code></a> (Firefox 52)</li>
<li><a href="Reference/Global_Objects/AsyncFunction" title="AsyncFunction 构造函数用来创建新的 异步函数 对象JavaScript 中每个异步函数都是  AsyncFunction 的对象。"><code>AsyncFunction</code></a> (Firefox 52)</li>
<li><a href="Reference/Operators/await" title="await  操作符用于等待一个Promise 对象。它只能在异步函数 async function 中使用。"><code>await 语句</code></a> (Firefox 52)</li>
</ul>
</li>
<li><a href="Reference/Trailing_commas" title="尾后逗号 (有时叫做“终止逗号”)在向 JavaScript 代码添加元素、参数、属性时十分有用。如果你想要添加新的属性,并且上一行已经使用了尾后逗号,你可以仅仅添加新的一行,而不需要修改上一行。这使得版本控制的比较更加清晰,以及代码便器的麻烦更少。"><code>函数参数列表的尾后逗号</code></a> (Firefox 52)</li>
</ul>
<h2 id="实验性的新特性">实验性的新特性</h2>
<p>以下特性已经实现,但可能仅在 Firefox Nightly 中可用、或者需要浏览器 flags 开启;且此提案的标准可能尚未正式进入 ECMAScript 规范,请小心使用。</p>
<h3 id="ArrayBuffer_对象的新方法"><code>ArrayBuffer</code> 对象的新方法</h3>
<ul>
<li><a href="Reference/Global_Objects/ArrayBuffer/transfer" title="静态ArrayBuffer.transfer() 方法返回一个新的ArrayBuffer 其内容取自oldBuffer的数据并且根据 newByteLength 的大小来对数据进行截取或者以0扩展。 如果 newByteLength 未定义,则使用 oldBuffer 的byteLength。这个操作使得 oldBuffer 处于被移除的状态。"><code>ArrayBuffer.transfer()</code></a> (<a class="external" href="https://gist.github.com/lukewagner/2735af7eea411e18cf20" rel="noopener">spec</a>)</li>
</ul>
<h3 id="新的_TypedObject_对象">新的 TypedObject 对象</h3>
<ul>
<li><a class="external" href="https://github.com/dslomov-chromium/typed-objects-es7" rel="noopener">Typed Objects draft</a></li>
</ul>
<h3 id="新的_Shared_Memory_对象">新的 Shared Memory 对象</h3>
<ul>
<li><a href="Reference/Global_Objects/SharedArrayBuffer" title="SharedArrayBuffer 对象用来表示一个通用的固定长度的原始二进制数据缓冲区类似于 ArrayBuffer 对象它们都可以用来在共享内存shared memory上创建视图。与 ArrayBuffer 不同的是SharedArrayBuffer 不能被分离。"><code>SharedArrayBuffer</code></a></li>
<li><a href="Reference/Global_Objects/Atomics" title="Atomics 对象提供了一组静态方法用来对 SharedArrayBuffer 对象进行原子操作。"><code>Atomics</code></a></li>
</ul>
<h2 id="相关链接">相关链接</h2>
<ul>
<li><a class="external" href="http://www.ecmascript.org/" rel="noopener">ECMAScript 官网</a></li>
<li><a class="external" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1021376" rel="noopener">Mozilla ES2016 tracking bug</a></li>
<li><a class="external" href="http://kangax.github.io/compat-table/es7/" rel="noopener" title="http://kangax.github.io/es5-compat-table">ECMAScript 2015 support across browsers</a></li>
</ul>
</article>