js的if直接判断变量

var a;
var b = '';
var c = false;
var d = {};
var e = [];
var f = 0;
var g = undefined;
var h = null;

if(a) alert(a);   //不会有弹框,if(a)判断结果为false
if(b) alert(b);   //不会有弹框,if(b)判断结果为false
if(c) alert(c);   //不会有弹框,if(c)判断结果为false
if(d) alert(d);   //会有弹框,弹出[Object Object],d会被默认为一个没有任何属性的对象
if(e) alert(e);   //会有弹框,弹出的是空白,e是一个没有属性的数组
if(f) alert(f);   //不会有弹框,if(f)判断结果为false
if(g) alert(g);   //不会有弹框,if(g)判断结果为false
if(h) alert(h);   //不会有弹框,if(h)判断结果为false

总结:
一)当变量为以下的值时,if直接判断变量得到结果为false:
1、初始化未定义变量
2、空字符串(不是空白字符串)
3、布尔值的false
4、值为0
5、未定义的值undefined
6、null

二)当变量为以下值时,if直接判断变量得到的结果为true:
1、空对象
2、空数组

所以js直接判断变量不能用于判断对象和数组是否为空的情况。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注