最近项目中发现了兼容性问题,是有关ES6语法的。由于是移动端app的项目,所以跟手机有关,现象如下:
vivo X6PLUS Android版本5.1 (部分其他低版本手机也能复现,只是举例) 发现页面样式能加载,但绑定的事件无响应,接口也未调用,产生用户投诉。
进行问题排查时发现部分js都未加载,遂对此版本上线的新人开发的内容代码进行review,内容聚焦到了两个地方:
1、声明变量时采用了let
2、采用了箭头函数
尝试把语法修改为符合ES5写法后,问题解决。
因此,以后遇到需要兼容稍旧版本的手机及系统时,要考虑到语法是否兼容。在webstrom中可从 File-Settings-Languages&Frameworks-JavaScript 这里修改js版本,例如此处修改为ECMAScript5.1后,在编辑器中采用ES6写法时,会有红线提示(如上文途中所示)。