JavaScript Standard Style 代码规范详解

JavaScript Standard Style 代码规范详解

standard 🌟 JavaScript Style Guide, with linter & automatic code fixer standard 项目地址: https://gitcode.com/gh_mirrors/st/standard

前言

JavaScript Standard Style 是一套广受欢迎的 JavaScript 代码风格规范,它通过提供一套严格的规则来帮助开发者编写更加一致、可读性更高的代码。本文将深入解析这套规范的核心内容,帮助开发者更好地理解和应用这些规则。

基础格式规范

缩进与空格

  • 缩进:使用 2 个空格作为缩进标准
  • 关键字空格:在 ifforwhile 等关键字后需要添加空格
  • 函数声明:函数名与括号之间需要空格
  • 运算符:中缀运算符前后需要空格
  • 逗号:逗号后需要空格
// 正确示例
function hello(name) {
  if (name === 'John') {
    console.log('hi', name)
  }
}

引号与比较

  • 字符串:优先使用单引号
  • 比较运算符:统一使用 ===!==,除非特殊需要检查 nullundefined
const message = 'hello world'
if (age === 18) {
  // ...
}

变量与函数规范

变量声明

  • 声明方式:每个变量单独声明
  • 命名规则:使用驼峰式命名
  • 未使用变量:避免声明未使用的变量
// 正确示例
const firstName = 'John'
const lastName = 'Doe'

// 错误示例
var firstName = 'John', lastName = 'Doe'

函数规范

  • 参数命名:避免重复的参数名
  • 回调函数:必须处理错误参数
  • 构造函数:名称首字母大写
// 构造函数示例
function Person(name) {
  this.name = name
}

// 回调函数示例
fs.readFile('file.txt', function(err, data) {
  if (err) throw err
  console.log(data)
})

对象与数组规范

对象声明

  • 属性格式:冒号后加空格
  • 方法简写:优先使用方法简写语法
  • 属性命名:避免重复的属性名
// 正确示例
const user = {
  name: 'John',
  age: 30,
  sayHello() {
    console.log('Hello')
  }
}

数组声明

  • 创建方式:使用字面量而非构造函数
  • 元素格式:元素间用逗号分隔,逗号后加空格
// 正确示例
const numbers = [1, 2, 3, 4]

// 错误示例
const numbers = new Array(1, 2, 3)

控制结构规范

条件语句

  • 大括号:多行条件语句必须使用大括号
  • else 位置:else 应与前一个花括号同行
// 正确示例
if (condition) {
  // ...
} else {
  // ...
}

// 错误示例
if (condition)
  doSomething()

循环语句

  • while 循环:避免在条件中进行赋值操作
  • switch 语句:每个 case 必须包含 break 或注释
// 正确示例
switch (value) {
  case 1:
    doSomething()
    break
  case 2:
    doSomethingElse()
    // 故意不 break
  default:
    // ...
}

高级规范

错误处理

  • try-catch:catch 中不要重新赋值错误对象
  • 全局错误:正确处理可能抛出的全局错误
try {
  // 可能出错的代码
} catch (err) {
  console.error(err)
  // 不要这样做: err = new Error('new error')
}

原型与继承

  • 原型访问:使用 Object.getPrototypeOf 而非 __proto__
  • 类继承:子类构造函数必须调用 super()
class Animal {
  constructor(name) {
    this.name = name
  }
}

class Dog extends Animal {
  constructor(name) {
    super(name)
  }
}

严格禁止的模式

  • eval:禁止使用 eval()
  • with:禁止使用 with 语句
  • debugger:禁止提交包含 debugger 的代码
  • 隐式全局变量:避免无意创建全局变量
// 这些都是禁止的
eval('var x = 1')
with (obj) { /* ... */ }
debugger
x = 10 // 意外的全局变量

总结

JavaScript Standard Style 通过一系列严格的规则,帮助开发者编写更加一致、可维护的代码。这些规范涵盖了从基础格式到高级编程模式的各个方面。虽然刚开始可能需要适应,但长期来看,遵循这些规范将显著提高代码质量和团队协作效率。

建议开发者在项目中逐步引入这些规范,可以使用配套的工具来自动检查和修复代码风格问题,从而更轻松地遵循这些最佳实践。

standard 🌟 JavaScript Style Guide, with linter & automatic code fixer standard 项目地址: https://gitcode.com/gh_mirrors/st/standard

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

余印榕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值