js兼容
方式一:引入polyfill文件来模拟对这些API的支持,
这种方式是通过为旧的浏览器添加方法来实现的。
通过polyfill的方式只能解决缺少API的问题,而当我们要使用一些新的语法特性,比如箭头函数((参数1,参数2, …,参数N) => {函数声明 })时,则需要使用转译的方式来实现。
比如 Iterator、Generator、Set、Maps、Proxy、Reflect、Symbol、Promise 等全局对象
方式二:转译(Transpiling),即通过使用Babel等编译器,来将代码编译成ES5版本的JavaScript代码。
通过这种方式可以将我们使用的新API、新特性都进行转译,以实现对旧式浏览器的支持。而这种转译实际上是使用其他代码来替换相应部分的代码,比如使用一个新的find来实现替换代码中的Array.prototype.find方法,而不是提供对其的支持。
