一个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字符串的比较规则。