页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

...

代码块
languagejs
/ 单行注释

/*
 * 多行注释
 */

/**
 * 获取用户信息
 * @param {string} userId - 用户 ID
 * @returns {Object} 用户信息
 */
function getUserInfo(userId) {
  // 逻辑
}

2. 变量与常量

2.1 变量声明

  • 使用 const 声明常量,使用 let 声明变量,避免使用 var

  • 每个声明语句只声明一个变量。


代码块
languagejs
const MAX_COUNT = 100;
let userName = 'John';

2.2 变量初始化

  • 尽量在声明时初始化变量。

代码块
languagejs
let count = 0;
const name = 'John';

2.3 避免全局变量

  • 避免使用全局变量,尽量将变量限制在局部作用域内。

3. 函数规范

3.1 函数命名

  • 使用 camelCase 命名法,函数名应清晰描述其功能。

代码块
languagejs
function calculateTotalPrice(items) {
  // 逻辑
}

3.2 函数参数

  • 参数数量不宜过多(建议不超过 5 个),过多时使用对象传递。

代码块
languagejs
function createUser({ name, age, email, address }) {
  // 逻辑
}

3.3 箭头函数

  • 优先使用箭头函数,尤其是回调函数和匿名函数。

代码块
languagejs
const numbers = [1, 2, 3];
const doubled = numbers.map(num => num * 2);

3.4 默认参数

  • 使用默认参数替代函数内部的默认值逻辑。

代码块
languagejs
function greet(name = 'Guest') {
  console.log(`Hello, ${name}`);
}

4. 对象与数组

4.1 对象字面量

  • 使用字面量创建对象,避免使用 new Object()

代码块
languagejs
const user = {
  name: 'John',
  age: 30,
};

4.2 对象属性

  • 属性名使用 camelCase 命名法。

  • 动态属性名使用 []

代码块
languagejs
const key = 'name';
const user = {
  [key]: 'John',
};

4.3 数组字面量

  • 使用字面量创建数组,避免使用 new Array()

代码块
languagejs
const numbers = [1, 2, 3];

4.4 数组方法

  • 优先使用 mapfilterreduce 等函数式方法。

代码块
languagejs
const doubled = numbers.map(num => num * 2);

5. 类与模块

5.1 类定义

  • 使用 class 关键字定义类,避免使用原型链。

代码块
languagejs
class User {
  constructor(name) {
    this.name = name;
  }

  greet() {
    console.log(`Hello, ${this.name}`);
  }
}

5.2 模块化

  • 使用 ES Module 进行模块化开发。

代码块
languagejs
// user.js
export class User {
  // 类定义
}

// main.js
import { User } from './user.js';

6. 异步编程

6.1 Promise

  • 使用 Promise 处理异步操作,避免回调地狱。

代码块
languagejs
function fetchData() {
  return new Promise((resolve, reject) => {
    // 异步操作
  });
}

6.2 Async/Await

  • 优先使用 async/await 替代 Promise.then

代码块
languagejs
async function getUser() {
  try {
    const user = await fetchData();
    console.log(user);
  } catch (error) {
    console.error(error);
  }
}

7. 错误处理

7.1 Try/Catch

  • 使用 try/catch 捕获同步代码中的错误。

代码块
languagejs
try {
  doSomething();
} catch (error) {
  console.error(error);
}

7.2 Promise 错误处理

  • 使用 .catch()  try/catch 捕获异步错误。

代码块
languagejs
fetchData()
  .then(data => {
    // 处理数据
  })
  .catch(error => {
    console.error(error);
  });