首先,对这几种类型进行检测,分别看看他们是什么类型
<script>
console.log(typeof(false));
console.log(typeof(""));
console.log(typeof(0));
console.log(typeof(null));
console.log(typeof(undefined));
<pre name="code" class="javascript">console.log(typeof("0"));
</script>
打印结果如下:
boolean
string
number
object
undefined
<pre name="code" class="html">string
将他们分别和false进行比较
<script>
console.log(false == false);
console.log(false == "");
console.log(false == 0);
console.log(false == null);
console.log(false == undefined);
console.log(false == "0");
</script>
查看打印结果:
true
true
true
false
false
true
这样可以得出结论:false,空字符串,0,字符串0都可以视为假值,而null,undefined则一个是空对象,一个还是undefined类型。
将他们分别作为if语句的条件 :
<script>
var condition = [false,"",0,null,undefined,"0"];
for(var i= 0;i<condition.length;i++){
if(condition[i]){
console.log("作为if条件,相当于true");
}else{
console.log("作为if条件,相当于false");
}
}
</script>
打印结果如下:
5 作为if条件,相当于false
作为if条件,相当于true
由此可以看出,除了字符串0以外,其他的值在作为if条件时,均被视作false;
在javascript中,null和undefined是两个特殊的对象,null表示变量被赋予null值,表示该变量被定义为空对象,而如果变量声明后未赋值或赋值为undefined,则表示该对象为无效对象。