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

关于JavaScript判断语句的一个小坑

2017-01-10 14:50 169 查看
不久之前在自己做的项目里,发现了一个判断语句失效的例子,比较大小某些时候不成立,
各种想不通,于是用了减法,这样的话,得出来的结果再进行判断,顺理成章多了,还更
加准确。当时没有过多的思考,今天又一次遇到这样的情况,判断语句失效,相比上一次,
这个的判断多了个条件。在各种梳理判断语句逻辑的情况下,还没有找到问题所在,我忽
然就想起上一次的例子,最终找到原因是数据类型。在没有格式装换的情况下,获取的
value值是字符串类型,进行逻辑运算的时候,认其编码,从而导致判断结果与预期不符,
而因为数字的某些判断结果类似于预期判断结果,从而容易出现2大于10这样的输出结果,

var syear = $('#volumecount_count_startyear').val();
var smonth = $('#volumecount_count_startmonth').val();
startMonth = syear + "-" + smonth;
var  eyear = $('#volumecount_count_endyear').val();
var emonth = $('#volumecount_count_endmonth').val();
endMonth = eyear + "-" + emonth;
//直接获取的(字符串)非num数据直接比较的是asc
if(syear-eyear>0|| (syear-eyear==0 && smonth - emonth>0)){
$.messager.model = {
ok:{ text: "确定", classed: 'btn-warning'}
};
$.messager.alert("提醒" , "开始年月大于结束年月");
return false;
}




//JavaScript判断条件的比较,数值的比较要注意必须要关注数据格式,直接获取的(字符串)非num数据直接比较的是asc,应采取相应措施


很多时候,一个不经意的疏忽,会导致意想不到的结果,测试的时候要更加小心和全面。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  判断语句