Kangax 的 ES7 兼容性表格
Kangax 的 ES7 兼容性表格
https://kangax.github.io/compat-table/es2016plus/
Engine types
Features
Flagged features
Show obsolete platforms Show unstable platforms
⬤ Minor difference (1 point) ⬤ Small feature (2 points) ⬤ Medium feature (4 points) ⬤ Large feature (8 points)
| Compilers/polyfills | Desktop browsers | Servers/runtimes | Mobile | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Feature name | Current browser | Traceur | Babel 6 + core-js |
Closure 2018.11 | Type- Script + core-js |
es7-shim | IE 11 | Edge 17 | Edge 18 | FF 60 ESR | FF 63 | FF 64 | CH 70, OP 57 |
CH 71, OP 58 |
SF 11.1 | SF 12 | Node >=6.5 <7[2] | Node >=8.10 <9[2] | Node >=10.13 <11[2] | DUK 2.2 | GraalVM 1.0[3] | iOS 11.3 | iOS 12 | Samsung 8.2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2016 features | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
§exponentiation (**) operator |
2/3 | 3/3 | 3/3 | 2/3 | 0/3 | 0/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 0/3 | 3/3 | 3/3 | 2/3 | 3/3 | 3/3 | 3/3 | 3/3 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
§Array.prototype.includes |
0/3 | 3/3 | 2/3 | 3/3 | 2/3 | 0/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 0/3 | 3/3 | 3/3 | 3/3 | 3/3 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2016 misc | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
§generator functions can't be used with "new" [7] |
Yes | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
§generator throw() caught by inner generator [8] |
Yes | No | No | Yes | Yes[9] | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| §strict fn w/ non-strict non-simple params is error[10] | Yes | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
§nested rest destructuring, declarations [11] |
Yes | No | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| §nested rest destructuring, parameters[12] | Yes | No | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
§Proxy, "enumerate" handler removed [13] |
Yes | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| §Proxy internal calls, Array.prototype.includes | Yes | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2017 features | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| §Object static methods | 0/4 | 4/4 | 3/4 | 4/4 | 3/4 | 0/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 0/4 | 4/4 | 4/4 | 0/4 | 4/4 | 4/4 | 4/4 | 4/4 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| §String padding | 0/2 | 2/2 | 2/2 | 2/2 | 2/2 | 0/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 0/2 | 2/2 | 2/2 | 0/2 | 2/2 | 2/2 | 2/2 | 2/2 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
§trailing commas in function syntax |
0/2 | 2/2 | 2/2 | 2/2 | 0/2 | 0/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 0/2 | 2/2 | 2/2 | 0/2 | 2/2 | 2/2 | 2/2 | 2/2 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
§async functions |
3/15 | 3/15 | 9/15 | 8/15 | 0/15 | 0/15 | 15/15 | 15/15 | 15/15 | 15/15 | 15/15 | 15/15 | 15/15 | 15/15 | 15/15 | 0/15 | 15/15 | 15/15 | 0/15 | 13/15 | 15/15 | 15/15 | 15/15 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| §shared memory and atomics | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 0/17 | 17/17 | 17/17 | 0/17 | 0/17 | 0/17 | 17/17 | 17/17 | 0/17 | 17/17 | 0/17 | 0/17 | 0/17 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2017 misc | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
§Proxy "ownKeys" handler, duplicate keys for non-extensible targets (ES 2017 semantics) [22] |
Yes | No | No | No | No | No | No | Yes | Yes | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| §RegExp "u" flag, case folding | Yes | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | No | Yes | Yes | Yes | Yes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
§arguments.caller removed |
Yes | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | No | Yes | Yes | Yes | Yes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2017 annex b | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| §Object.prototype getter/setter methods | 0/16 | 16/16 | 0/16 | 16/16 | 0/16 | 8/16 | 14/16 | 14/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 10/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | 16/16 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| §Proxy internal calls, getter/setter methods | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 0/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 4/4 | 0/4 | 4/4 | 4/4 | 0/4 | 4/4 | 4/4 | 4/4 | 4/4 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
§assignments allowed in for-in head in non-strict mode |
Yes | Yes | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2018 features | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| §object rest/spread properties | 0/2 | 2/2 | 1/2 | 2/2 | 0/2 | 0/2 | 0/2 | 0/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 0/2 | 2/2 | 2/2 | 0/2 | 2/2 | 2/2 | 2/2 | 2/2 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
§Promise.prototype.finally |
0/3 | 3/3 | 3/3 | 3/3 | 0/3 | 0/3 | 0/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 0/3 | 0/3 | 3/3 | 0/3 | 3/3 | 3/3 | 3/3 | 3/3 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| §s (dotAll) flag for regular expressions | Yes | ? | Yes | No | ? | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | ? | Yes | Yes | No | Yes | Yes | Yes | Yes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| §RegExp named capture groups | Yes | No | Yes | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | No | Flag[23] | Yes | No | Yes | Yes | Yes | Flag[23] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| §RegExp Lookbehind Assertions | Yes | No | No | No | No | No | No | No | No | No | No | No | Yes | Yes | No | No | Flag[23] | Yes | Yes | No | Yes | No | No | Yes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| §RegExp Unicode Property Escapes | Yes | No | Yes | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | No | Flag[23] | Yes | No | Yes | Yes | Yes | Flag[23] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| §Asynchronous Iterators | 0/2 | 2/2 | 2/2 | 2/2 | 0/2 | 0/2 | 0/2 | 0/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 0/2 | 2/2 | 0/2 | 0/2 | 2/2 | 0/2 | 2/2 | 0/2 | 2/2 | 2/2 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2018 misc | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| §template literal revision | Yes | No | No | Yes | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | No | Yes | Yes | Yes | Yes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2019 misc | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| §optional catch binding | 0/3 | 0/3 | 0/3 | 3/3 | 0/3 | 0/3 | 0/3 | 0/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 0/3 | 0/3 | 3/3 | 0/3 | 0/3 | 3/3 | 3/3 | 0/3 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
§Symbol.prototype.description |
Yes | No | No | No | No | No | No | No | No | No | Yes | Yes | Yes | Yes | No | Yes | No | No | No | No | No | No | Yes | No | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
§Function.prototype.toString revision |
0/7 | 0/7 | 0/7 | 0/7 | 0/7 | 1/7 | 4/7 | 4/7 | 7/7 | 7/7 | 7/7 | 7/7 | 7/7 | 4/7 | 4/7 | 4/7 | 4/7 | 7/7 | 1/7 | 7/7 | 4/7 | 4/7 | 4/7 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
[1] Flagged features have to be enabled via --harmony flag
[2] Flagged features have to be enabled via --harmony or --es_staging flag
[3] Executed in Node.js/JVM mode via graalvm/bin/node --jvm.
[4] The feature have to be enabled via "Experimental Javascript features" setting under about:flags
[5] This feature is supported when using Babel with core-js.
[6] This feature is supported when using TypeScript with core-js.
[7] TC39 meeting notes from July 28, 2015.
[8] 'Semantics of yield* in throw case' GitHub issue in ECMA-262 repo.
[9] Requires the downlevelIteration compile option.
[10] TC39 meeting notes from July 29, 2015.
[11] TC39 meeting notes from July 28, 2015.
[12] TC39 meeting notes from July 28, 2015.
[14] This feature requires native generators or regenerator-runtime, it's a part of babel-polyfill or babel-runtime.
[15] Flagged features have to be enabled via "Enable experimental Javascript features" setting under about:flags
[16] The feature was temporarily disabled to mitigate the Meltdown and Spectre CPU bugs.
[17] The feature is available only in Firefox Developer Edition and Firefox Nightly builds.
[18] The feature was temporarily disabled to mitigate the Meltdown and Spectre CPU bugs. It can be enabled via javascript.options.shared_memory setting under about:config
[19] The feature was temporarily disabled to mitigate the Meltdown and Spectre CPU bugs.
[20] The feature was temporarily disabled to mitigate the Meltdown and Spectre CPU bugs.
[21] The feature have to be enabled via "Experimental enabled SharedArrayBuffer support in JavaScript." setting under about:flags
[22] The behaviour of the Proxy “ownKeys” handler in presence of duplicate keys has been modified later.
[23] The feature have to be enabled via --js-flags="--harmony" flag
[24] The feature is considered unstable, but can be enabled via --js-flags="--harmony-promise-finally" flag
============== End
Kangax 的 ES7 兼容性表格的更多相关文章
- ES6 有什么新东西
ES6 有什么新东西? 你可能已经听说过 ECMAScript 6 (简称 ES6)了.ES6 是 Javascript 的下一个版本,它有很多很棒的新特性.这些特性复杂程度各不相同,但对于简单的脚本 ...
- ES6相关新特性介绍
你可能已经听说过 ECMAScript 6 (简称 ES6)了.ES6 是 Javascript 的下一个版本,它有很多很棒的新特性.这些特性复杂程度各不相同,但对于简单的脚本和复杂的应用都很有用.在 ...
- CSS3 nth 伪类选择器
考察下面的 HTML 代码片段: <div> <section>section 1</section> <section>section 2</s ...
- arguments 对象的老历史
引题:为什么 JavaScript 中的 arguments 对象不是数组 http://www.zhihu.com/question/50803453 JavaScript 1.0 1995 年, ...
- 第十一章:WEB浏览器中的javascript
客户端javascript涵盖在本系列的第二部分第10章,主要讲解javascript是如何在web浏览器中实现的,这些章节介绍了大量的脚本宿主对象,这些对象可以表示浏览器窗口.文档树的内容.这些章节 ...
- ES6:JavaScript 新特性
我相信,在ECMAScript.next到来的时候,我们现在每天都在写的JavaScript代码将会发生巨大的变化.接下来的一年将会是令JavaScript开发者们兴奋的一年,越来越多的特性提案将被最 ...
- JavaScript 风格指导(Airbnb版)
JavaScript 风格指导(Airbnb版) 用更合理的方式写 JavaScript 原文 翻译自 Airbnb JavaScript Style Guide . 目录 类型 引用 对象 数组 解 ...
- 三种情形容易引起Azure虚拟机重新启动
与虚拟机或云服务角色中运行的代码有关的问题可能会导致重新启动.但是,Microsoft 在以下情况下也会重新启动您的角色: 来宾操作系统更新 – 仅影响云服务 Web 和辅助角色.有关如何限制这些 ...
- 语音控制的tab选项卡
前端开发whqet,csdn,王海庆,whqet,前端开发专家 ladies and 乡亲们,程序猿同志们,周末仍然坚守工作岗位,或者学习不辍的童鞋们,福音来了. 语音识别高不高端.难不难? 今天给大 ...
随机推荐
- day57
JQ初级 一.认识jQuery 1.什么是jQuery jQuery是对原生JavaScript二次封装的工具函数集合 jQuery是一个简洁高效的且功能丰富的JavaScript工具库 2.jQue ...
- 详解大数据采集引擎之Sqoop&采集oracle数据库中的数据
一.Sqoop的简介: Sqoop是一个数据采集引擎/数据交换引擎,采集关系型数据库(RDBMS)中的数据,主要用于在RDBMS与HDFS/Hive/HBase之间进行数据传递,可以通过sqoop i ...
- Scala--数组相关操作
一.定长数组 Array定长数组,访问数组元素需要通过() 数组长度是固定的,但是内容可以修改 val nums = new Array[Int](10) //长度为10的int数组 初始化为0 v ...
- cleanCode[1]:有意义的命名
为什么要有意义的命名: 我们都曾经说过有朝一日再回头清理那些糟糕的代码,然而最终总是弃之不顾.稍后等于永不,我们需要立即行动,写优雅的代码. 写代码的过程中,读占的比例很大,所以首先要让代码易读. 有 ...
- C语言中猴子吃桃问题
猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个.第二天早上又将第一天剩下的桃子吃掉一半,有多吃了一个.以后每天早上都吃了前一天剩下的一半零一个.到第 10 天早上想再吃时 ...
- 20155237方自晨 实验四android开发基础
提交点一 Android Stuidio的安装测试: 参考<Java和Android开发学习指南(第二版)(EPUBIT,Java for Android 2nd)>第二十四章: 安装 A ...
- 20155334 《网络攻防》Exp4 恶意代码分析
<网络攻防>Exp4 恶意代码分析 一.实验问题回答 如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些,用什么方法来监 ...
- suggest braces around empty body in an 'if' statement
出现这种错误是要求加大括号
- 【ORACLE】oracle数据库用户密码复杂度配置
-- 设置密码复杂度 SQL> @ /u01/app/oracle/product/11.2.0/db_1/rdbms/admin/utlpwdmg.sql -- 测试 SQL> alte ...
- centos 7 tomcat 开机自启
第一章 1.将tomcat加入开启自己,以减少手动启动的麻烦 环境配置需要提前配置好.(我这里已经是不做操作了) 192.168.1.195 jdk1.8 + tomcat 8 第二章 2.编写to ...