为了账号安全,请及时绑定邮箱和手机立即绑定

为什么js里"10000"<"8000"为true

为什么js里"10000"<"8000"为true

狐的传说 2018-11-13 22:13:19
如题,js不是弱类型语言么,字符串相减不应该自动转换为数字类型运算么
查看完整描述

1 回答

?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

如果两个数字型的字符串相减,或者其中一个为字符串时,那么会自动转换为数字类型的进行运算:

'10000' - '8000' // 2000
10000 - '8000' // 2000
10000 > '8000' // true

但如果是两个都是数字型的字符串进行比较,那就不会自动转换为数字类型,会按照纯字符串的比较规则进行比较:

从字符串左边开始,一次比较每个字符(比较每个字符对应的ASCII值),直接出现差异、或者其中一个串结束为止

比如 '10000' 和 '8000' 这两个字符串比较, 字符'8'对应的ASCII值比字符'1'对应的ASCII值要大,则比较直接结束,最后的结果则是'8000'>'10000'


查看完整回答
反对 回复 2018-11-13
  • 1 回答
  • 0 关注
  • 440 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信