根据环境选择语言特性

JavaScript 是 ECMAScript(以下简称 ES) 的实现。

ES 的版本非常多,各个浏览器的兼容情况也各不相同,所以一定要了解什么特性是不能在业务中直接使用的。

许多公司在开新项目的同时,依然要继续维护老项目,老项目的整套体系又和现在的前端整个开发流程不同,可能缺少编译、polyfill 等来解决兼容性问题的方案。

在老项目中,应避免去使用 ES6+ 的特性,用户的环境千变万化,完全不知道会用什么浏览器,这时候就考验开发者的能力了,在使用一些不确定的特性时,可以通过 CAN I USE 查看。

一些新的 API 都会有对应的解决方案,如 includes 方法,就可以用 indexOf 代替,或者使用第三方工具库,如 lodash

var string = '123';

console.log(
  string.includes('2'), // 输出:true
);

console.log(
  string.indexOf('2') > -1, // 输出:true
);

即便如此,开发中也难免会忘记,写惯了 ES6,可能一不小心就带了一个箭头函数上线了。

这时候就可以通过 ESLint 这样的代码检查工具,来帮助检查,然后配合 Git 的钩子,在 commit 时跑 ESLint,能很大程度上规避掉这个问题。