CreateTime--2017年6月29日10:36:01Author:Marydon
javascript对于0的解读
1.0与“0”
1.1 判断0与"0"是否相等
测试:alert(0 == "0")
结果:返回true
结论:
a.当判断0 == "0",js返回的是true;
b.但是调用length属性时只能是"0",因为数字number类型没有length属性;
c.javascript将number类型与数字格式的string视为相等,
这个特性多用于:当后台返回的是字符串格式的数字且判断是否和指定数值相等时,不需要做数值类型转换,使用方便,举例:
var example = "12345";
方式一:if (12345 == example) {}(推荐使用)
方式二:if ("12345" == example) {}(不推荐使用)
1.2 关于”0“的逻辑判断
情景1:当变量值为0时不能进if语句
错误判断用法:
// 二者满足一个就弹出页面 if (param1.length > 0 || param2.length > 0) { var url = baseUrl + '/telemedicine/room/operate/viewMsg.do?YCHZCOUNT=' + param1 + '&WLZJCOUNT=' + param2; object.showMessage('未审核消息提醒', url, 500, 300, 2); }解析:”0“.length返回的是1,不是0。
正确判断方法:
// 二者满足一个就弹出页面 if (0 != param1 || 0 != param2) { var url = baseUrl + '/telemedicine/room/operate/viewMsg.do?YCHZCOUNT=' + param1 + '&WLZJCOUNT=' + param2; object.showMessage('未审核消息提醒', url, 500, 300, 2); }注意:
使用param!=0这种判断条件的必要前提是:参数是>=0的string类型的数值或数字;
业务逻辑:使用SQL对满足条件的数据进行计数,返回的结果必然>=0
2.0与“”
判断0与""是否相等
测试:alert(0 == "")
结果:返回true
结论:当判断0 == "",js返回的是true。
3.
转载于:https://www.cnblogs.com/Marydon20170307/p/7093273.html
相关资源:深入解读JavaScript中的Hoisting机制