在JS中箭頭函數根據是否書寫大小括號可分爲如下四種狀況。javascript
// 不省略 const fun = (value) => { return value; }; // 省略小括號 const fun = value => { return value; }; // 省略大括號 const fun = (value) => value; // 省略大括號與小括號 const fun = value => value;
這裏的反作用結構是指函數內的代碼影響了函數外的代碼。html
const even = []; [1, 2, 3, 4].forEach((num) => { if (num % 2 === 0) { even.push(num); } };
注意:airbnb文檔沒寫,函數內代碼塊複雜時也須要大括號。java
大括號無關緊要,建議始終寫小括號。參考git
針對不一樣的函數結構選擇是否使用括號的方式會帶來兩個問題:github
我認爲有這種爭議時應該選擇兼容性更強的不省略大括號與小括號
,在配置種關閉了對這四種寫法的檢查,可是遵循約定大於配置的原則,始終按照一種風格書寫。ide
根據文檔,在eslint中如下兩個模塊控制以上四種狀況的書寫,可對其進行配置(代碼以下)函數
// .eslintrc.js module.exports = { extends: 'airbnb', rules: { 'arrow-parens': 'off', 'arrow-body-style': 'off', }, };