关于移动端使用ES6的后果
开发一个单页面需要内嵌到APP内部,整个测试流程都没有问题,唯独一款魅族手机上js无法执行,(该魅族搭配安卓6.0系统)。
我使用zepto.js代替jQuery,怀疑ajax不兼容,更换成jquery之后仍然无法请求,然后换成原生js结果一样;逐行测试发现我的js没有执行;反复排查了很长时间,逐渐意识到不是手机的问题,是我的写法有问题;最终发现了我使用let定义了一个变量(就使用了一次)导致了手机无法解析js;改成var之后问题解决。
**在开发移动端项目时,如果不是使用配置了babel的框架开发,尽量不要使用es6语法; **虽然目前大多数移动端系统都已支持es6;也不敢排除一些搭配低版本系统的设备存在,在搭配系统版本较低的设备上使用es6将导致整个js代码不会执行。