JavaScript字符串比较基于Unicode码点字典序,从左到右逐字符比对;语义化排序应使用localeCompare(),支持多语言和拼音排序。

JavaScript 字符串比较用的是 Unicode 码点值的字典序,从左到右逐字符比对,不是按拼音、笔画、长度或数值大小。
按 Unicode 码点逐位比较
比较从首字符开始:先取两个字符串在相同位置的字符,查它们的 Unicode 码点(code point),码点小的字符所在字符串整体更小;若相等,继续比下一位;若某字符串提前结束,较短者更小。
- "ab"
- "abc"
- "a" 90)
大小写字母顺序与常见字符范围
Unicode 中,大写字母 A–Z(65–90)排在小写字母 a–z(97–122)之前。数字 0–9(48–57)又在大写字母之前。所以:
分析 Java Spring Boot 后端 Controller 代码,自动生成 Markdown 格式的接口文档。当用户说“生成 Java 接口文档”、“生成 API 文档”、“从 Spring 代码生成文档”时触发。
- "1"
- "Apple"
- "Zebra"
中文、emoji 和符号也按码点算
汉字不是按拼音排序,而是按其在 Unicode 中的分配位置。例如:
- "中"(U+4E2D,码点 20013)
- "?"(U+1F60A,码点 128522)> "中" → true
- 标点、空格、控制符也都参与比较,比如空格(U+0020,码点 32)比所有数字和字母都小
需要语义化排序时用 localeCompare()
直接用 排中文列表会错乱,因为“北京”和“上海”按码点比,不等于拼音顺序。正确做法是:
- "apple".localeCompare("Banana") → 负数(默认英语规则,忽略大小写可配)
- "北京".localeCompare("上海", "zh-CN", { sensitivity: "base" }) → 按拼音排序
- 返回负数(前者小)、0(相等)、正数(前者大),语义明确且支持国际化
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










