JavaScript字符串比较大小:为什么'10' < '2'?

之前在刷codewar的时候遇到了这个问题,后来在segmentfault上也看到人提及,觉得挺有趣,记录一下。

为什么'10' < '2'?

可以在控制台里输入试一下,确实'10' < '2'返回值是true
多试几次其他情况后就能发现初步规律。

'10' < '2'
'1' < '2'
'3' > '2'
'19999' < '2'
'30' > '200'

很明显,数字字符串的比较是按照字符对应位置一个个比较,由于'10'的第一位是1,比‘2’的第一位2小,所以'10' < '2'。
但在对应位置比较时,其实并不是按照数字大小比较的。
意思是,‘1’ < '2' 并不是因为1 < 2。
对应位置比较实际是比较它们的字符编码的大小,你可以通过charCodeAt(0)查看一个字符的编码

'1'.charCodeAt(0) // 49
'2'.charCodeAt(0) // 50

因为49 < 50, 所以‘1‘ < '2'
而刚好0-9在字符集中是按照顺序排下来的,所以从表面上来看,就是数字本身的大小关系了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,268评论 0 4
  • 女人最大的错误,就是按照男人的标准来打造自己。就算你貌美如仙,温柔贤淑,就算你生儿育女,宽容忍让,就算你集众优于一...
    d6fe1c6a85c6阅读 368评论 2 3
  • 结婚之前,以为爱情是自己的全部,爸妈的反对、朋友的劝解,都变得毫无意义,坚持初心和一无所有的高中同学结婚了。 结婚...
    米特天空阅读 566评论 0 0
  • 9月10日 周日 小雨 晚上洗刷完后,女儿非要在我们大床上和小宝玩儿。可小宝已经困了,又缠着我哭闹,...
    杨喜钠妈妈阅读 179评论 0 0
  • 今天向大家推荐一款很不错的a pp讯飞语音。特别是对带娃的我来说,很方便,微信直接秒回。再也不用一边抱着娃儿一边另...
    张家小林阅读 241评论 0 3