【问题标题】:Why in javascript "100" < "5" returns true? [duplicate]为什么在 javascript "100" < "5" 中返回 true? [复制]
【发布时间】:2020-03-19 21:43:49
【问题描述】:

我的代码中有一个错误,我比较的是字符串而不是数字。

我在做 "100"

为什么javascript会认为“100”小于“5”?

【问题讨论】:

  • 因为 1 在 5 之前。这与“Aaron”在“Betelgeuse”之前的原因相同:字典排序。

标签: javascript string


【解决方案1】:

当您将&lt; 与字符串一起使用时,将比较字符串的每个索引的code points。 1 的码位是 49,5 的码位是 53,所以'100' &lt; '5',因为 49

console.log(
  '1'.charCodeAt(),
  '5'.charCodeAt()
);

同样,'A' &lt; 'a' 因为A (65) 的代码点小于a (97) 的代码点。

【讨论】:

  • 我猜“代码点”是指“ascii 代码”?
  • en.wikipedia.org/wiki/Code_point ASCII 范围相对较小,我很确定逻辑适用于 any Javascript 字符串(可以在 unicode 范围 IIRC 中的任何位置包含字符)
猜你喜欢
  • 2021-11-13
  • 2014-05-11
  • 2021-11-10
  • 2019-12-07
  • 1970-01-01
  • 2014-12-20
  • 2015-06-22
  • 2011-05-04
  • 2015-10-07
相关资源
最近更新 更多