JavaScript 编码规范
JavaScript 代码书写的基本规范和最佳实践
问题
说几条写 JavaScript 的基本规范。
解答
1. 变量声明
优先使用 const,需要重新赋值时使用 let,避免使用 var。
// ✅ 好的写法
const MAX_COUNT = 100;
let currentIndex = 0;
// ❌ 避免的写法
var name = 'John';
2. 命名规范
// 变量和函数:小驼峰
const userName = 'John';
function getUserInfo() {}
// 常量:全大写 + 下划线
const API_BASE_URL = 'https://api.example.com';
// 类/构造函数:大驼峰
class UserService {}
function Person(name) {
this.name = name;
}
// 私有属性:下划线前缀
class User {
_privateMethod() {}
}
3. 语句规范
// 始终使用分号结尾
const name = 'John';
// 始终使用大括号,即使只有一行
if (condition) {
doSomething();
}
// 避免这样写
if (condition) doSomething();
4. 比较运算
// ✅ 使用严格相等
if (value === 0) {}
if (name !== '') {}
// ❌ 避免宽松相等
if (value == 0) {} // '0' == 0 为 true
if (name != '') {}
5. 字符串
// ✅ 使用单引号或模板字符串
const name = 'John';
const greeting = `Hello, ${name}!`;
// ❌ 避免字符串拼接
const greeting = 'Hello, ' + name + '!';
6. 对象和数组
// 使用字面量创建
const obj = {};
const arr = [];
// 使用简写语法
const name = 'John';
const user = {
name, // 属性简写
sayHello() { // 方法简写
console.log('Hello');
}
};
// 使用解构
const { name, age } = user;
const [first, second] = arr;
7. 函数
// 使用箭头函数(不需要 this 时)
const add = (a, b) => a + b;
const numbers = [1, 2, 3].map(n => n * 2);
// 使用默认参数
function greet(name = 'Guest') {
return `Hello, ${name}`;
}
// 使用剩余参数代替 arguments
function sum(...numbers) {
return numbers.reduce((a, b) => a + b, 0);
}
8. 注释规范
// 单行注释,前面加空格
/**
* 多行注释用于函数说明
* @param {string} name - 用户名
* @returns {string} 问候语
*/
function greet(name) {
return `Hello, ${name}`;
}
// TODO: 待完成的功能
// FIXME: 需要修复的问题
9. 代码格式
// 缩进:2 或 4 个空格,保持一致
// 行宽:不超过 80-120 字符
// 空行:逻辑块之间加空行
function processUser(user) {
// 验证
if (!user) {
return null;
}
// 处理
const { name, age } = user;
// 返回
return {
displayName: name.toUpperCase(),
isAdult: age >= 18
};
}
10. 模块化
// 使用 ES6 模块
import { getUserInfo } from './user';
export const API_URL = 'https://api.example.com';
export default class UserService {}
// 避免在全局作用域污染变量
// 使用 IIFE 或模块封装
关键点
- 变量声明:优先
const,其次let,禁用var - 命名规范:变量函数小驼峰,常量全大写,类名大驼峰
- 严格比较:始终使用
===和!== - 现代语法:善用解构、模板字符串、箭头函数、默认参数
- 工具辅助:使用 ESLint + Prettier 自动化规范检查和格式化
目录