🐫 驼峰命名法(Camel Case)完全介绍
驼峰命名法是一种不使用分隔符,而是通过大写字母来区分单词的命名方式。因大写字母像“驼峰”而得名。
一、两种变体
驼峰命名法有两种形式:
| 类型 | 名称 | 首字母 | 示例 | 主要用途 |
|---|---|---|---|---|
| 小驼峰 | lowerCamelCase | 小写 | userNamegetUserById |
变量、函数、方法、JSON字段 |
| 大驼峰 | UpperCamelCase 或 PascalCase |
大写 | UserNameGetUserById |
类、接口、构造函数、枚举 |
注意:严格来说,只有小驼峰才叫”驼峰命名”(camelCase),大驼峰常被称为 PascalCase。但日常交流中常统称”驼峰”。
二、核心规则
基本规则:
- 不使用任何分隔符(不靠下划线或连字符)
- 靠大写字母标识单词边界
- 只能包含字母和数字(但不要以数字开头)
- 不能有空格或特殊字符
小驼峰规则:
- 第1个单词:全部小写
- 后续单词:首字母大写,其余小写
- 示例:
userName、httpClient、getUserData
大驼峰规则:
- 每个单词首字母大写,其余小写
- 示例:
UserName、HttpClient、GetUserData
三、详细示例
✅ 正确示例
// 小驼峰(变量/函数)
let userName = "Alice";
let userAge = 25;
let isActive = true;
let httpRequest = new XMLHttpRequest();
let myVariableName = "hello";
function getUserById(id) { }
function calculateAverageScore() { }
function setBackgroundColor(color) { }
// 大驼峰(类/构造函数)
class UserAccount { }
class HttpClient { }
class DatabaseConnection { }
function Person(name, age) { } // 构造函数
❌ 错误示例
// 错误写法
let UserName = "Alice"; // ❌ 大驼峰用于变量(应小驼峰)
let user_name = "Alice"; // ❌ 用了蛇形
let user-name = "Alice"; // ❌ 用了连字符
let 2ndUser = "Bob"; // ❌ 数字开头
let userName@ = "Alice"; // ❌ 特殊字符
let userName123 ✅ 合法(数字在末尾)
四、适用场景
小驼峰的应用场景:
| 语言/平台 | 使用场景 | 示例 |
|---|---|---|
| JavaScript | 变量、函数、对象属性 | let userName = "Tom" |
| TypeScript | 变量、函数、接口属性 | const getUserById = () => {} |
| Java | 变量、方法名 | private String userName; |
| C# | 方法参数、局部变量 | void printMessage(string text) |
| JSON | 字段名(常见) | {"userName": "Alice"} |
| React/Vue | 组件 props、state | this.setState({ isLoading: true }) |
大驼峰的应用场景:
| 语言/平台 | 使用场景 | 示例 |
|---|---|---|
| 所有 OOP 语言 | 类名、接口名 | class UserProfile { } |
| Java | 枚举、注解 | enum Color { RED, GREEN } |
| TypeScript | 类型别名、接口 | interface UserData { } |
| C# | 命名空间、类、方法(部分) | namespace MyCompany { } |
| Python | 类名(PEP 8 要求) | class UserAccount: |
| React | 组件名(文件名) | UserProfile.jsx |
五、为什么驼峰命名流行?
| 优点 | 说明 |
|---|---|
| 打字快 | 无需按 Shift 加特殊符号(只在大写时按 Shift) |
| 紧凑 | 在狭小空间(如 JSON、IDE 侧边栏)显示更完整 |
| 与类型系统配合 | 大驼峰区分类,小驼峰区分变量/函数 |
| IDE 友好 | 驼峰命名单词边界识别好,智能补全更精准 |
| 跨语言通用 | Java、JS、C#、Go 等都采用,易于迁移 |
缺点:
- 长名字可读性稍差:
getUserDataFromDatabaseViaAPIvsget_user_data_from_database_via_api - 依赖大小写敏感(某些系统不区分大小写时可能出错)
六、与其他命名法的对比
| 命名风格 | 示例 | 长度 | 可读性 | 打字速度 | Python | URL | CSS |
|---|---|---|---|---|---|---|---|
| 小驼峰 | userName |
短 | ⭐⭐⭐⭐ | 快 | ❌ | ❌ | ❌ |
| 大驼峰 | UserName |
短 | ⭐⭐⭐⭐ | 快 | ✅(类) | ❌ | ❌ |
| 蛇形 | user_name |
长 | ⭐⭐⭐⭐⭐ | 慢 | ✅(变量) | ✅(查询参数) | ❌ |
| 脊柱 | user-name |
中 | ⭐⭐⭐⭐⭐ | 中 | ❌ | ✅(路径) | ✅(类名) |
七、实战案例
案例 1:JavaScript 项目完整示例
// 变量:小驼峰
let userName = "Alice";
let userAge = 30;
let isLoggedIn = true;
// 函数:小驼峰
function getUserProfile(userId) {
return { userId, userName };
}
function calculateTotalPrice(price, quantity) {
return price * quantity;
}
// 类:大驼峰
class UserAccount {
constructor(userName, email) {
this.userName = userName; // 属性:小驼峰
this.email = email;
}
getUserInfo() { // 方法:小驼峰
return `${this.userName} (${this.email})`;
}
}
// JSON 字段:小驼峰
const userData = {
userId: 123,
userName: "Bob",
userEmail: "bob@example.com"
};
案例 2:Python 中类的驼峰命名
# Python 要求类名用大驼峰
class UserProfile:
def __init__(self, user_name): # 参数、变量用蛇形
self.user_name = user_name # 属性可以是蛇形
def get_user_info(self): # 方法用蛇形
return self.user_name
# 实例化:变量用蛇形
user_profile = UserProfile("Alice")
案例 3:Java 混合使用
public class UserService { // 类:大驼峰
private String userName; // 属性:小驼峰
public String getUserById(int userId) { // 方法:小驼峰
// 局部变量:小驼峰
String queryResult = "User: " + userId;
return queryResult;
}
public static final int MAX_RETRY_COUNT = 3; // 常量:大蛇形
}
八、常见缩写与特殊处理
| 场景 | 推荐写法 | ❌ 错误写法 | 说明 |
|---|---|---|---|
| HTTP | httpRequest |
HTTPRequest |
首字母缩写最好整体小写或保持风格统一 |
| XML | xmlParser |
XMLParser |
同上 |
| ID | userId |
userID 或 UserId |
ID 作为整体,首字母大写即可 |
| URL | urlBuilder |
URLBuilder |
同上 |
| JSON | jsonData |
JSONData |
同上 |
原则:缩写词要么全大写,要么全小写,不要混用(如 HttpRequest 比 HTTPRequest 更常见)。
九、记忆口诀
- 小驼峰,首小写:
userName、getData - 大驼峰,首大写:
UserName、GetData - 变量函数小驼峰,类名接口大驼峰
- Python 类用大驼峰,其他部分用蛇形
十、总结
| 核心要点 | 内容 |
|---|---|
| 小驼峰 | 首字母小写,后续单词首字母大写 → 变量/函数/属性 |
| 大驼峰 | 每个单词首字母大写 → 类/接口/组件 |
| 主要语言 | JavaScript、Java、C#、TypeScript、Go |
| 优点 | 打字快、紧凑、IDE 友好 |
| 缺点 | 长名字可读性稍差 |
| 不要用 | URL 路径、CSS 类名、Python 变量/函数 |
记住:驼峰是大多数主流语言变量的标准,但在 Python 中只用于类名,Python 变量/函数必须用蛇形!
文档更新时间: 2026-06-07 02:30 作者:月影工作室