js数字字符串大小比较

今天做用户需求的时候,发现js检验出错,我从页面去了两个值进行比较大小,原意想比较两个数值的大小,因为感觉js是弱数据类型,所以直接进行了比较,类型与:

a= '10000000'        b= '5000000'

a>b输出false ,如果a-b>0 则输出true

查阅资料发现,这是JavaScript中隐式转换的关系,首先在比较的时候,二者是按照string的形式进行比较的,那么比较第一位的时候,1 < 5,直接返回false,而 a - b会把两个数转成number类型进行比较,转换完之后输出就是true。

所以一般从页面上取得值之后,最好使用减法比较,或者对取得的值进行显式转换,Number(a)>Number(b).

总结:JavaScript中常用数字字符串比较

1、数字与数字之间直接比较

      比较方式依据数学运算,没什么好说的。

2、数字与字符串数字之间直接比较

      例如 数字5 与字符串数字'123',这种比较先将数字字符串转为纯数字,然后为纯数字间的比较

3、字符串数字与字符串数字之间直接比较

      例如 ‘5’和‘123’比较,这种比较为ASCII码比较,依次取每个字符,字符转为ASCII码进行比较:‘5’>'123'  ==>true

4、字符串之间直接比较

      大小比较是依次取字符,字符转ASCII码,ASCII码先大的即为大;

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值