在公司写代码时,使用了array.prototype.includes语法导致ios8和安卓6.4一下手机报错。因为用的babel,之前认为会被转译成es5,结果并没有,于是看了一下相关资料。
babel默认只会转译语法,比如箭头函数,spread。全局对象和全局对象的方法,比如Set Map Object.assign,includes默认是不会转译的。需要加polyfill或者transform-runtime。现在我们项目里用的是后者。他会转移全局对象及其静态方法,不会去转译实例方法。
应该是比较经典的例子了。
网友评论