在js中的条件判断常常让人疑惑,因为js是一种弱类型语言,下面来进行测试,测试常见的变量类型在if条件中的表现
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
</body>
<script type="text/javascript" src="jquery-3.0.0.min.js"></script>
<script type="text/javascript">
$(function(){
var a,b=-1,c= 1,d= 0,e=null,f=undefined,g='',h="",i = false,j=true,k=[],l={};
if (a) {
console.log("a is true");
}else{
console.log("a is false");
}
if (b) {
console.log("b is true");
}else{
console.log("b is false");
}
if (c) {
console.log("c is true");
}else{
console.log("c is false");
}
if (d) {
console.log("d is true");
}else{
console.log("d is false");
}
if (e) {
console.log("e is true");
}else{
console.log("e is false");
}
if (f) {
console.log("f is true");
}else{
console.log("f is false");
}
if (g) {
console.log("g is true");
}else{
console.log("g is false");
}
if (h) {
console.log("h is true");
}else{
console.log("h is false");
}
if (i) {
console.log("i is true");
}else{
console.log("i is false");
}
if (j) {
console.log("j is true");
}else{
console.log("j is false");
}
if (k) {
console.log("k is true");
}else{
console.log("k is false");
}
if (l) {
console.log("l is true");
}else{
console.log("l is false");
}
if (m) {
console.log("m is true");
}else{
console.log("m is false");
}
});
</script>
</html>
从上面的测试结果来看,在js中:定义未赋值的变量、数字0、null、undefined、空字符串以及布尔值false在条件判断中都为false;同时未定义的变量进行判断则会报错。