一个bug 引发的js 字符串大小比较的问题
2019-12-30
编程之家
https://www.jb51.cc
编程之家收集整理的这篇文章主要介绍了一个bug 引发的js 字符串大小比较的问题,编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
一个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之类的框架来进行绑定,
最后安利
总结
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
小编个人微信号 jb51ccc
喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!