Teal TealUI

JS 兼容补丁util/shim

在低版本浏览器直接使用 ECMAScript 5+ 新增的接口。

ECMAScript 5
ECMAScript 6
ECMAScript 7(ECMAScript 2016)
建议
PC 端项目
移动端项目
Node.js 项目
打包优化

ECMAScript 5

移动端和现代浏览器(IE9+)都支持 ECMAScript 5(HTML5 的一部分)。IE 6-8 和 2015 年之前的桌面浏览器需导入:

import "util/shim/es5-shim";

补丁包含了以下 ECMAScript 5 新增的接口:

¹:补丁仅模拟了该接口的部分功能。
²:受引擎限制,IE6-8 无法模拟 Object.defineProperty,使用了该接口的程序将无法在 IE6-8 运行。

另参考

ECMAScript 6

2016 年之后发布的浏览器(Edge 14+)都支持 ECMAScript 6。其它浏览器需导入:

import "util/shim/es6-shim";

项目中一般用不到 ECMAScript 6 的完整功能,建议改用精简后的补丁:

import "util/shim";

补丁包含了以下 ECMAScript 6 新增的接口(精简版只包含了其中加 ³ 的接口):

另参考

ECMAScript 7(ECMAScript 2016)

目前(2017)没有完全支持 ECMAScript 7 的浏览器。需导入:

import "util/shim/es7-shim";

补丁包含了以下 ECMAScript 7 新增的接口:

另参考

建议

PC 端项目

建议导入 util/shim/es5-shimutil/shim,确保 ECMAScript 5 全部和 ECMAScript 6+ 常用接口可用。

移动端项目

ECMAScript 5 在移动端可直接使用,建议导入 util/shim 确保 ECMAScript 6+ 常用接口可用。

Node.js 项目

建议直接升级为 Node.js 6+,可直接使用所有 ECMAScript 6 功能。

打包优化

有些打包插件可以实现在调用 ECMAScript 新增的接口时自动打补丁,可参考相关文档。

另参考