代码规范-箭头函数的四种写法

栏目: JavaScript · 发布时间: 7年前

内容简介:在JS中箭头函数根据是否书写大小括号可分为以下四种情况。如果函数体没有副作用的结构,省略大括号,否则使用大括号。这里的副作用结构是指函数内的代码影响了函数外的代码。

在JS中箭头函数根据是否书写大小括号可分为以下四种情况。

// 不省略
const fun = (value) => {
    return value;
};

// 省略小括号
const fun = value => {
    return value;
};

// 省略大括号
const fun = (value) => value;

// 省略大括号与小括号
const fun = value => value;

airbnb-javascript关于箭头函数的检查

如果函数体没有副作用的结构,省略大括号,否则使用大括号。 参考

这里的副作用结构是指函数内的代码影响了函数外的代码。

const even = [];
[1, 2, 3, 4].forEach((num) => {
    if (num % 2 === 0) {
        even.push(num);
    }
};

注意:airbnb文档没写,函数内代码块复杂时也需要大括号。

如果参数为一个,省略小括号,否则使用小括号。 参考

《Google JavaScript Style Guide》中箭头函数的提议

大括号可有可无,建议始终写小括号。 参考

个人看法

针对不同的函数结构选择是否使用括号的方式会带来两个问题:

  • 代码不一致 :就像一个PPT中不应该一会左对齐一会右对齐一会居中对齐。
  • 省略括号不易扩展 :单个参数变多个参数要加小括号,直接返回代码变为多行计算后再返回代码需要增加大括号

我认为有这种争议时应该选择兼容性更强的 不省略大括号与小括号 ,在配置种关闭了对这四种写法的检查,但是遵循 约定大于配置 的原则,始终按照一种风格书写。

eslint的配置

根据文档,在eslint中以下两个模块控制以上四种情况的书写,可对其进行配置(代码如下)

  • arrow-parens
  • arrow-body-style
// .eslintrc.js
module.exports = {
  extends: 'airbnb',
  rules: {
    'arrow-parens': 'off',
    'arrow-body-style': 'off',
  },
};

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

轻量级Django

轻量级Django

茱莉亚·埃尔曼 (Julia Elman)、马克·拉温 (Mark Lavin) / 侯荣涛、吴磊 / 中国电力出版社; 第1版 / 2016-11-1 / 35.6

自Django 创建以来,各种各样的开源社区已经构建了很多Web 框架,比如JavaScript 社区创建的Angular.js 、Ember.js 和Backbone.js 之类面向前端的Web 框架,它们是现代Web 开发中的先驱。Django 从哪里入手来适应这些框架呢?我们如何将客户端MVC 框架整合成为当前的Django 基础架构? 本书讲述如何利用Django 强大的“自支持”功......一起来看看 《轻量级Django》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

html转js在线工具
html转js在线工具

html转js在线工具