JavaScript中对非Boolean型变量进行if判断

来源:互联网 发布:数组发筛选100以内素数 编辑:程序博客网 时间:2024/06/05 06:11
刚进入企业实习,看别人写的JavaScript代码,发现有很多地方放会直接将一个非Boolean型的变量进行if判断,因为以前在Java中没有接触过此类代码,所以看得一头雾水。在经过一段时间的学习后,有了一定了解,归纳如下。在对于非布尔型变量进行布尔判断时。会自动调用它的Boolean()方法,对于各种变量类型,Boolean()的转化规则如下:

String类型:
转化为 true :非空字符串
转化为 false :空字符串,如“”

var str1 = "not null";if(str1) {    alert("我是非空字符串。")}var str2 = "";if(str2) {    alert("我是空字符串。")}//上面代码执行将只会弹出 “我是非空字符串。”

Number类型:
转化为 true :非零数值
转化为 false :0和NaN(not a number)

var num1 = 10;if(num1) {    alert(num1);}var num2 = 0;if(num2) {    alert(num2);}//上面代码执行将只会弹出 10

Object类型:
转化为 true :任何对象
转化为 false :null

var obj1 = new Object();if(obj1) {    alert("我是一个对象。");}var obj2 = new Object();obj2 = null;if(obj2) {    alert("我是一个空对象。");}//上面代码执行将只会弹出 "我是一个对象。"

以上均参考自《JavaScript高级程序语言设计》

2 0