js '123' > '23' 返回false 这是怎么比较的呢

'123' > '23' 返回false 这是按照什么规则怎么比较的呢

阅读 3.1k
5 个回答

字符串比较(x>y):

  1. 如果xy的前缀,那么x > y 返回false。反之,返回true

  2. 逐位比较,从第0位开始,直到有一个不同,返回这个位置上两个字符的比较。'2314' > '232',比的就是'1'>'2'

字符串比大小的话,是逐位比较,若相等就比较下一位。
'123'和‘23’比较,实际就是'1'<'2',

'1'>'2';//false 结束
然后你可以再试试'2'>'11''2'>'21'

js里面字符串之间的大小比较是按照字典顺序逐位来比较的。
'1' < '2',比较久直接结束了。

新手上路,请多包涵
var a = '123',b='23'
a.charCodeAt(0)//49
b.charCodeAt(0)//50

如代码所示
每个字符有其对应的anscii码,
字符串之间的比较则是从首字符的anscii码开始进行比较

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题