首先
typeof(undefined) == 'undefined'
typeof(null) == 'object'
typeof("") == 'string'
typeof(0) == 'number'
typeof(false) == 'boolean'
这五个值的共同点是,在if语句中做判断,都会执行false分支。当然从广义上来看,是说明这些数值都是其对应数据类型上的无效值或空值。还有这五个值作!运算,结果全为:true。
然后
var o={flag:true};
var test=!!o.flag;//等效于var test=o.flag||false; 不为空则为false
alert(test);
由于对null与undefined用!操作符时都会产生true的结果,所以用两个感叹号的作用就在于,如果明确设置了o中flag的值(非 null/undefined/0""/等值),自然test就会取跟o.flag一样的值;如果没有设置,test就会默认为false,而不是 null或undefined。
本文探讨了JavaScript中五种特殊值(undefined, null, 空字符串, 0, false)的特点及其在条件判断中的行为,并通过示例介绍了如何使用双重否定(!!)进行值的有效性检查。
134

被折叠的 条评论
为什么被折叠?



