加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 创业 > C语言 > 正文

一个bug 引发的js 字符串大小比较的问题

发布时间:2020-12-15 00:34:55 所属栏目:C语言 来源:网络整理
导读:一个bug 引发的js 字符串大小比较的问题 这是由于一个bug引发的探索 首先看一下代码 这个代码的作用是在购物车选择的时候确保所选数量不大于库存, 这个实现的方式是否优雅先不做考虑,现在来看一下问题, 使用jq 取值之后,这两个类型都是string类型的,这

一个bug 引发的js 字符串大小比较的问题


这是由于一个bug引发的探索
首先看一下代码


        
      

    function plus(){
        var i=$('#number').html();
        var left = $('#left').val();
        console.log(('nummber:'+i+typeof(i)));
        console.log('left:'+left+typeof(left));
        console.log(i >= left);
        if(i >= left){
            return null;
        }
        $('#number').html(++i);
    }
 

这个代码的作用是在购物车选择的时候确保所选数量不大于库存,
这个实现的方式是否优雅先不做考虑,现在来看一下问题,
使用jq 取值之后,这两个类型都是string类型的,这就造成了在比较的时候会出现一个严重的bug,在想象中应该是能够按照数字的形式进行比较的,但是其实是完全按照string类型的比较方式来进行的,这就会出现很多奇怪的情况,在设定最大值为一个数,不一定累加到什么时候就会出现错误的比较结果。
等之后有空的时候我再仔细研究一下js字符串的比较规则。

解决方案

对类型进行强制转换就可以了,另一个方案是,去使用mvvm之类的框架来进行绑定,
最后安利

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读