您的位置:首页 > Web前端 > JavaScript

js代码比较大小前需要把string转换int

2017-05-19 00:00 309 查看
摘要: 今天在修改bug时,var a = -30 ,var b = -300 ,a<b 返回true,总结一下

今天在写代码时发现一个容易忽略的问题,写下来以供参考

这是做的一个验证,设置的最小值minValue不能小于参数本身的最小值min

当输入正数的时候都没有问题,但是输入负数时就出现问题了

正确设置参数var minValue = -30 ,var min = -300 ,console.log(a>b) 结果返回false

$("#table tbody tr").each(function() {

var paraId = $(this).find(".paraId").text();
var min = $("#min_"+paraId).attr("data-rule-min"); =>-300

var minValue = $(this).find("input[name='min']").val();=>-30

if( minValue < min ){ =>true
return false;
}
});

由于js无法分辨min 和minValue的类型,所以把数值作为String类型处理了

处理这种问题就是要将类型转换为int,有三种方法:

1,最简单的一种:乘以1 (或者除以1)

$("#table tbody tr").each(function() {

var paraId = $(this).find(".paraId").text();
var min = $("#min_"+paraId).attr("data-rule-min")*1; =>-300

var minValue = $(this).find("input[name='min']").val()*1;=>-30

if( minValue < min ){ =>FALSE
return false;
}
});

2,Number(minValue)<Number(min) =>FALSE

3,parseInt(minValue)<parseInt(min) =>FALSE
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: