js前端命名规范

📂 二、其他常见 .md 文件类型

除 README.md 外,项目中还可能包含以下 Markdown 文件:

文件类型 用途说明 案例参考
CHANGELOG.md 记录版本更新历史(如修复的 Bug、新增特性) [[1]6 提及版本摘要独立记录
CONTRIBUTING.md 贡献者指南(代码提交规范、测试要求、PR 流程) [[6]7 中的协作说明
LICENSE.md 项目开源协议(如 MIT、Apache 2.0) 7 中的协议模块
DEVELOPMENT.md 开发环境配置(本地调试、分支管理策略) [[5]14 的扩展开发文档
DOCS/*.md 模块化文档(如 API 接口说明、架构设计) 14 中的插件文档示例

好,这个问题问得非常“规范派” 👍 我直接给你一份前端(偏大厂 / 团队协作级)命名规范速查表,覆盖你刚才提到的:

  • 方法
  • 变量
  • 是否(boolean)
  • 常量
  • 组件
  • 事件
  • 枚举 / 状态
  • 接口 / 类型

你可以直接拿去当 项目规范文档的一页 用。


好,这个我给你 重新系统写一份「偏大厂 / 团队协作级」的 JS 前端命名规范速查表。 不是那种“变量用小驼峰就完事”的水文,而是 能直接进团队规范 / Code Review 用的版本。 我会把你提到的 isNon 这种命名 单独拎出来讲清楚:什么时候对、什么时候坑。


✅ JavaScript / Frontend 命名规范速查表(团队协作级)

目标:可读性 > 可维护性 > 可扩展性 > 避免歧义

核心原则一句话: “看到名字就知道它是什么、表示什么状态、是否可变、是否是布尔、是否是集合”


一、总体命名风格总览

类型 命名风格 示例
变量 lowerCamelCase userName
函数 lowerCamelCase getUserInfo()
布尔值 is / has / can / should 前缀 isLogin
常量 UPPER_SNAKE_CASE MAX_RETRY_COUNT
类 / 构造函数 UpperCamelCase UserService
文件名 kebab-case user-service.ts
枚举 UPPER_SNAKE_CASE USER_ROLE.ADMIN
私有字段 _ 前缀 _cacheMap

二、变量命名规范(最重要)

1️⃣ 普通变量(名词 + 语义)

错误

js
let data
let info
let temp
let result

正确

js
let userInfo
let orderList
let responseData
let cachedToken

🚫 禁止使用无语义词:data / temp / obj / arr


2️⃣ 集合 / 数组命名(必须是复数)

类型 正确 错误
数组 userList user
Map userMap users
Set selectedIdSet ids
js
const userList = []
const userIdMap = new Map()
const selectedIds = new Set()

三、布尔值命名(重点 + 易踩坑)

✅ 标准布尔前缀(只用这 4 个)

前缀 语义 示例
is 状态 isLogin
has 拥有 hasPermission
can 能力 canEdit
should 业务判断 shouldRetry
js
const isLoading = true
const hasError = false
const canSubmit = true

⚠️ 关于你提到的:isNonXXX 命名

❌ 强烈不推荐(团队规范里会被打回)

js
isNonEmpty
isNonAdmin
isNonValid

问题在哪?

问题 说明
双重否定 isNonEmpty === true 脑子要转两次
易误解 Non 是不是 not?还是 null object name?
Code Review 成本高 大厂基本不允许

✅ 推荐替代方案(明确 + 正向)

反例 推荐
isNonEmpty isEmpty === false
hasValue
isNonAdmin isAdmin === false
isNormalUser
isNonValid isValid === false
isInvalid

📌 黄金规则:布尔命名只表达“正向状态”


四、函数命名规范(动词开头)

1️⃣ CRUD 动词表(团队统一)

动作 动词
获取 get / fetch / load
创建 create / build
更新 update / set
删除 remove / delete
校验 validate / check
转换 transform / parse / format
js
getUserInfo()
fetchOrderList()
validateForm()
parseJwtToken()

2️⃣ 函数命名 = 动词 + 对象 + 条件

js
handle()
doIt()
process()

js
handleLoginSubmit()
processPaymentResult()
syncUserProfile()

五、事件 & 回调命名规范

场景 命名
点击事件 handleButtonClick
成功回调 onLoadSuccess
失败回调 onLoadError
监听函数 onUserChange
js
function handleSubmitClick() {}
function onSocketMessage() {}

六、常量 & 枚举命名

1️⃣ 常量(全部大写)

js
const MAX_PAGE_SIZE = 50
const DEFAULT_TIMEOUT = 3000

2️⃣ 枚举对象

js
export const USER_ROLE = {
  ADMIN: 'admin',
  USER: 'user',
  GUEST: 'guest',
}

七、类 / Service / Hook 命名

类(名词)

js
class UserService {}
class AuthManager {}
class CacheStore {}

React Hooks

ts
useUserInfo()
useAuthStatus()
useScrollPosition()

ts
useGetUser()
useFetchData()

八、临时变量(允许但有限制)

js
for (let i = 0; i < list.length; i++) {}

允许:

  • i / j
  • idx
  • len

❌ 禁止用于业务逻辑


九、文件 & 目录命名(大厂常规)

类型 示例
页面 user-profile.tsx
service user.service.ts
hook use-user-info.ts
工具 date-utils.ts
常量 auth.constants.ts
备案号: 湘ICP备2021015274号-3