js中使用if(val)判断中,val值会被认为是false的情况,如下图所示
① if(undefined)
② if(0)
③ if(null)
④ if("") //空字符串
⑤ if(NaN)
⑥ if(false) 本身即是Boolean
代码如下所示,浏览器运行结果如上图所示。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
</style>
</head>
<body>
</body>
<script>
window.onload=function(){
let a ; //定义变量但未赋值 此时a=undefined
if(a){
console.log("1,判断为true,a=",a)
}else{
console.log("1,判断为false,a=",a) // 输出结果:1,判断为false,a= undefined
}
let b =0;
if(b){
console.log("2,判断为true,b=",b)
}else{
console.log("2,判断为false,b=",b) // 输出结果:2,判断为false,b= 0
}
let c = null;
if(c){
console.log("3,判断为true,c=",c)
}else{
console.log("3,判断为false,c=",c) // 输出结果:3,判断为false,c= null
}
let d = "";
if(d){
console.log("4,判断为true,d=",d)
}else{
console.log("4,判断为false,d=",d) // 输出结果:4,判断为false,d=
}
let e = NaN;
if(e){
console.log("5,判断为true,e=",e)
}else{
console.log("5,判断为false,e=",e) // 输出结果:5,判断为false,e= NaN
}
let f = false;
if(f){
console.log("6,判断为true,f=",f)
}else{
console.log("6,判断为false,f=",f) // 输出结果:6,判断为false,f= false
}
}
</script>
</html>