You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么在JavaScript中字符串比较时"51" > "6"的结果为false

JavaScript字符串大小比较的技术原理

核心比较规则

JavaScript中对字符串执行>、<等大小比较操作时,不会直接转换为数字对比,而是严格遵循逐字符Unicode码点对比规则:

  • 从两个字符串的第一个字符开始,依次对比对应位置字符的Unicode编码值大小
  • 只要某一位置的字符对比得出明确大小结果,就直接终止后续对比,返回该结果
  • 若前面所有对应位置字符都完全相等,再判断字符串长度,长度更长的字符串判定为更大

现象具体拆解

首先明确数字字符对应的Unicode十进制编码值:"1"为49、"2"为50、"3"为51、"4"为52、"5"为53、"6"为54。我们逐个对比过程:

  • 对比"51" > "1":第一个字符"5"(53)> "1"(49),直接返回true
  • 对比"51" > "2":第一个字符"5"(53)> "2"(50),直接返回true
  • 对比"51" > "3":第一个字符"5"(53)> "3"(51),直接返回true
  • 对比"51" > "4":第一个字符"5"(53)> "4"(52),直接返回true
  • 对比"51" > "5":第一个字符相等,继续对比长度,"51"长度2 > "5"长度1,返回true
  • 对比"51" > "6":第一个字符"5"(53) < "6"(54),直接终止对比返回false

补充说明

如果需要按数值大小对比数字字符串,需要先显式转换为数字类型再操作,示例:
Number("51") > Number("6") // 执行结果为true

内容的提问来源于stack exchange,提问作者Kavin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 22:36:07