🐫 驼峰命名法(Camel Case)完全介绍

驼峰命名法是一种不使用分隔符,而是通过大写字母来区分单词的命名方式。因大写字母像“驼峰”而得名。


一、两种变体

驼峰命名法有两种形式:

类型 名称 首字母 示例 主要用途
小驼峰 lowerCamelCase 小写 userName
getUserById
变量、函数、方法、JSON字段
大驼峰 UpperCamelCase
或 PascalCase
大写 UserName
GetUserById
类、接口、构造函数、枚举

注意:严格来说,只有小驼峰才叫”驼峰命名”(camelCase),大驼峰常被称为 PascalCase。但日常交流中常统称”驼峰”。


二、核心规则

基本规则:

  1. 不使用任何分隔符(不靠下划线或连字符)
  2. 靠大写字母标识单词边界
  3. 只能包含字母和数字(但不要以数字开头)
  4. 不能有空格或特殊字符

小驼峰规则:

  • 第1个单词:全部小写
  • 后续单词:首字母大写,其余小写
  • 示例:userNamehttpClientgetUserData

大驼峰规则:

  • 每个单词首字母大写,其余小写
  • 示例:UserNameHttpClientGetUserData

三、详细示例

✅ 正确示例

// 小驼峰(变量/函数)
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 等都采用,易于迁移

缺点:

  • 长名字可读性稍差:getUserDataFromDatabaseViaAPI vs get_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 userIDUserId ID 作为整体,首字母大写即可
URL urlBuilder URLBuilder 同上
JSON jsonData JSONData 同上

原则:缩写词要么全大写,要么全小写,不要混用(如 HttpRequestHTTPRequest 更常见)。


九、记忆口诀

  • 小驼峰,首小写userNamegetData
  • 大驼峰,首大写UserNameGetData
  • 变量函数小驼峰类名接口大驼峰
  • Python 类用大驼峰其他部分用蛇形

十、总结

核心要点 内容
小驼峰 首字母小写,后续单词首字母大写 → 变量/函数/属性
大驼峰 每个单词首字母大写 → 类/接口/组件
主要语言 JavaScript、Java、C#、TypeScript、Go
优点 打字快、紧凑、IDE 友好
缺点 长名字可读性稍差
不要用 URL 路径、CSS 类名、Python 变量/函数

记住:驼峰是大多数主流语言变量的标准,但在 Python 中只用于类名,Python 变量/函数必须用蛇形!

文档更新时间: 2026-06-07 02:30   作者:月影工作室
IT运维支持-AIWALY-月影工作室