[编码规范]前端必须养成的 coding 习惯

企业项目实战 > 第一部分 > ES6 代码规范与基础回顾

[编码规范]前端必须养成的 coding 习惯

为什么要定义代码规范?

    一般来说在开发中每个人的代码习惯都不太一样, 这样就会导致代码风格不一致。而当前在一些小型甚至中小型创业型团队中, 完全没有代码规范, 以致于维护和修改 bug 的时候看别人的代码成为一种很难受的事情…
    这种情况尤其在前端开发中尤为明显。因为关于前端的开发规范到现在为止也没有行业权威标准, 基本上各大公司都有一套属于自己的标准, 而中小型公司则都是在开发中通过 eslint 进行约束。 但 eslint 终究无法规范一些方法与命名, 它只能简单地规范一些空格、换行或结束符号等,我们完全可以使用 prettierrc.json 来解决,但是各种命名规则与方法调用只能靠人力来检查。
    为了帮大家确认一套适应性较强的规范, 我在最近参考了一些大厂的规范, 经过比较, 发现 Airbnb 的标准貌似颇受推崇, 目前国内其它公司的标准基本都是参考这套标准整理而成。今天给大家稍微整理下,去除了一些不是很重要的内容,期望大家在以后的开发工作中形成一个良好的代码习惯。

命名规则

  • 无论何时, 不要使用单字母来声明变量或函数, 它们的命名应当有一定的描述性
  • 使用驼峰式来命名对象、函数和实例, 使用帕斯卡式命名构造函数或类
  • 不要再使用"_"开头来定义私有属性, 因为这种约束没有意义, 另外, 也是因为在最新的 ECMA 中已经定义了私有属性修饰符:#
// #代表的是私有属性, 目前在chrome 浏览器中已经实现
class User {
   
  // 声明私有属性并赋值
  #id = 'xyz';
  constructor(name) {
   
    this.name = name;
  }
  getUserId() {
   
    // 内部可以打印
    console.log(this.#id);
    return this.#id;
  }
}
const tom = new User('tom');
// 外部不行的
console.log(tom.getUserId());
  • 如果在你的函数或回调中找不到 this 了, 不要使用 self/that 来保存 this, 而是使用箭头函数
// bad
function foo() {
   
  const that = this;
  return function () {
   
    console.log(that);
  };
}

// good
function foo() {
   
  return () => {
   
    console.log(this);
  };
}
  • 如果你的文件只导出一个类, 那么你的文件名应该与你的类名完全一致, 而在引用时也应该完全一致
class CheckBox {
   
  // ...
}
export default CheckBox;
import CheckBox from './CheckBox';
  • 总是使用模组 (import/export) 而不是其他非标准模块系统。如果你的环境不支持那就想办法让它支持
  • 不要使用通配符"*"来导出模块,
// bad
const AirbnbStyleGuide = require('./AirbnbStyleGuide');
module.exports = AirbnbStyleGuide.es6;

// bad
import * as AirbnbStyleGuide from './AirbnbStyleGuide';

// ok
import AirbnbStyleGuide from './AirbnbStyleGuide';
export default AirbnbStyleGuide.es6;

// best
import {
    es6 }
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值