我刚刚在 Firebug 控制台中尝试过,
let (X=10) X/2
和
[x,y]=[y,x]
这些都是 SpiderMonkey 支持的功能,我猜 V8 有它自己的份额。
我在哪里可以了解 ECMAScript 中尚未包含但可在各种浏览器中使用的功能?有没有一个地方可以把这些收集在一起?
我刚刚在 Firebug 控制台中尝试过,
let (X=10) X/2
和
[x,y]=[y,x]
这些都是 SpiderMonkey 支持的功能,我猜 V8 有它自己的份额。
我在哪里可以了解 ECMAScript 中尚未包含但可在各种浏览器中使用的功能?有没有一个地方可以把这些收集在一起?
ECMAScript 6(又名 ECMAScript 2015)是 JavaScript 的当前标准,但引擎尚未完全实现它:
从 ECMAScript 2016 开始,将有年度版本和新的发布流程:
解释新发布过程和 ES2016 候选功能的博客文章:http ://www.2ality.com/2015/11/tc39-process.html
提议功能的官方列表(ECMAScript 标准可能接受也可能不接受):https ://github.com/tc39/ecma262
ES2016 功能表:http: //kangax.github.io/compat-table/es7/
如果您想在旧引擎上使用任何新功能,您可以通过 Babel 将它们转换为 ES5:https ://babeljs.io/
这里有一篇文章涵盖了有关 Harmony/ES6/Javascript.next 的各种资源:
http://addyosmani.com/blog/ecmascript-6-resources-for-the-curious-javascripter/
第一个特征被称为“let
表达式”,它是非标准的;它是从 Firefox 41 中删除的,并且类似的非标准“let
块”是从 Firefox 44 中删除的:https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let#Non-standard_let_extensions
我惊讶地发现 Kangax 的表格中没有提到这个特定的非标准 JS,但我猜他不得不将此列表限制为多个引擎支持的非标准 JS 扩展:https ://kangax.github.io /兼容表/非标准/
如果你想更深入地了解兔子洞,而 Kangax 和 MDN 还没有满足你的好奇心,这个旧参考可能会告诉你关于旧浏览器的好奇心:help.dottoro.com/ljsdaoxj.php
除此之外,浏览器制造商通常会记录他们自己浏览器的怪癖(MDN 也擅长记录非 Mozilla 的怪癖,但并不完美);说到怪癖,Peter-Paul Koch 在这里记录了标准和非标准 DOM 方法:quirksmode.org/dom/
无论如何,这些不仅在标准中“还没有”,而且可能“永远不会”,您不应该在自己的代码中使用它们。
对于当前的 ECMAScript 264 实现,这里是不同浏览器供应商支持的功能列表:http: //kangax.github.com/es5-compat-table/
对于下一代 ECMAScript Harmony 一些资源:
http://addyosmani.com/blog/ecmascript-6-resources-for-the-curious-javascripter/