全部工具 / 对比指南 / camelCase、snake_case、kebab-case 用哪个

camelCase、snake_case、kebab-case 用哪个

一句话结论

跟着语言生态走,不要自己发明。JavaScript / Java 变量用 camelCase,Python / Ruby / Rust 用 snake_case,CSS 类名、URL 路径、npm 包名用 kebab-case,常量用 SCREAMING_SNAKE_CASE。同一项目内保持一致比选"最好的"更重要。

核心区别对照

写法camelCasesnake_casekebab-case
分隔符无,靠大写字母分词下划线连字符
Java / JavaScript 变量标准少见不可用(连字符非法)
Python / Rust / Ruby 变量不推荐标准不可用(连字符非法)
CSS 类名 / HTML 属性可用但少见少见标准
URL 路径 / 文件名不推荐(大小写敏感)可用标准(利于 SEO 分词)
键盘输入成本需按 Shift需按 Shift + 减号最低

camelCase 与 PascalCase

驼峰靠大写字母分词,不引入额外字符,在 Java、JavaScript、C#、Swift 里是变量与函数的标准写法;首字母大写的 PascalCase 通常留给类名和组件名。缺点是对非英语母语者和全大写缩写不友好(XMLHttpRequest 这类历史遗留就是例子)。

snake_case 与 kebab-case

snake_case 用下划线,在 Python、Ruby、Rust、Go 以及数据库字段名里是主流,可读性最好的形式之一,全大写变体 SCREAMING_SNAKE_CASE 专用于常量。kebab-case 用连字符,是 CSS 类名、HTML 属性、URL 路径和 npm 包名的标准——因为连字符在标识符里非法,而在 URL 和 CSS 里最自然,且搜索引擎会把连字符当作分词依据。

怎么选

相关工具

常见问题

可以在同一个项目里混用吗

跨语言边界时不可避免(前端 camelCase、后端 snake_case 很常见),此时应在接口层做一次统一转换,而不是让两种风格散落在同一层代码里。

URL 里为什么推荐连字符而不是下划线

搜索引擎把连字符当作词分隔符,下划线则可能被当作连接符,user-name 比 user_name 更容易被正确分词。

命名风格影响性能吗

完全不影响。它纯粹是可读性与团队约定问题,一致性的价值远大于风格本身。