toLowerCase() 是 JavaScript 中遵循 Unicode 标准的字符串小写转换方法,返回新字符串且不修改原串;支持 locale 参数(ES2019+)、区域敏感映射及各类 Unicode 字符,但需注意兼容性与类型安全。

toLowerCase() 是 JavaScript 中用于将字符串转为小写的内置方法,它遵循 Unicode 标准,对所有可映射的字符执行大小写转换,不修改原字符串(返回新字符串),且在绝大多数场景下行为稳定可靠。
基本用法与返回值
该方法无参数,调用后返回一个全新字符串,原字符串保持不变:
- "Hello WORLD".toLowerCase() → "hello world"
- "İstanbul".toLowerCase() → "i̇stanbul"(注意土耳其语中带点大写 İ 的特殊处理)
- "".toLowerCase() → ""(空字符串返回空字符串)
Unicode 感知,非仅 ASCII
不同于简单查表替换,toLowerCase() 基于当前运行环境的 Unicode 数据库(ECMAScript 规范要求实现 Unicode 大小写映射):
- 支持希腊字母:"ΘΕΟΣ".toLowerCase() → "θεος"
- 支持德语 ß:"SS".toLowerCase() → "ss"(但 "ß".toUpperCase() → "SS",注意双向映射不对称)
- 支持带重音字符:"ÉLÉPHANT".toLowerCase() → "éléphant"
区域敏感性与 locale 参数(ES2019+)
现代浏览器和 Node.js 13+ 支持可选的 locale 参数,用于指定语言环境,影响某些语言的转换逻辑:
立即学习“Java免费学习笔记(深入)”;
- "I".toLowerCase("en-US") → "i"(标准英文)
- "I".toLowerCase("tr") → "ı"(土耳其语中大写 I 对应无点小写 ı,而非 i)
- 多个 locale 可传数组:"HI".toLowerCase(["tr", "en-US"]) → "hi"
未传 locale 时,使用运行环境默认语言标签,等效于 toLowerCase(undefined)。
兼容性与注意事项
该方法自 ECMAScript 1 起存在,所有主流环境均支持;但 locale 参数需 ES2019(即较新环境):
- IE 全系列不支持 locale 参数,使用时需检测或降级处理
- 对 null 或 undefined 调用会报 TypeError,建议先做类型检查:typeof str === 'string' ? str.toLowerCase() : ''
- 正则、HTML 属性名等场景中,大小写转换常用于归一化处理,但需注意:CSS 类名、XML 标签名等可能有自定义规则,不能完全依赖 toLowerCase










