根據(jù)環(huán)境選擇語言特性
JavaScript 是 ECMAScript(以下簡稱 ES) 的實現(xiàn)。
ES 的版本非常多,各個瀏覽器的兼容情況也各不相同,所以一定要了解什么特性是不能在業(yè)務(wù)中直接使用的。
許多公司在開新項目的同時,依然要繼續(xù)維護(hù)老項目,老項目的整套體系又和現(xiàn)在的前端整個開發(fā)流程不同,可能缺少編譯、polyfill 等來解決兼容性問題的方案。
在老項目中,應(yīng)避免去使用 ES6+
的特性,用戶的環(huán)境千變?nèi)f化,完全不知道會用什么瀏覽器,這時候就考驗開發(fā)者的能力了,在使用一些不確定的特性時,可以通過 CAN I USE 查看。
一些新的 API 都會有對應(yīng)的解決方案,如 includes
方法,就可以用 indexOf
代替,或者使用第三方工具庫,如 lodash
。
var string = '123';
console.log(
string.includes('2'), // 輸出:true
);
console.log(
string.indexOf('2') > -1, // 輸出:true
);
即便如此,開發(fā)中也難免會忘記,寫慣了 ES6
,可能一不小心就帶了一個箭頭函數(shù)上線了。
這時候就可以通過 ESLint
這樣的代碼檢查工具,來幫助檢查,然后配合 Git 的鉤子,在 commit
時跑 ESLint
,能很大程度上規(guī)避掉這個問題。