undefined、null、空数组、空对象是true还是false
1、空对象不是true也不是false(对象没有实例化)
if({}){console.log(11)}else{console.log(122)}
if(!{}){console.log(11)}else{console.log(122)}
if({}==true){console.log(11)}else{console.log(122)}
if({}==false){console.log(11)}else{console.log(122)}
if({}==null){console.log(11)}else{console.log(122)}
if({}==undefined){console.log(11)}else{console.log(122)}
if(!{}==true){console.log(11)}else{console.log(122)}
if(!{}==false){console.log(11)}else{console.log(122)}
if(!{}==null){console.log(11)}else{console.log(122)}
2、空数组作为判断条件时相当于true,空数组和布尔值直接比较时相当于false
if([]){console.log(11)}else{console.log(122)}
if(![]){console.log(11)}else{console.log(122)}
if([]==true){console.log(11)}else{console.log(122)}
if([]==false){console.log(11)}else{console.log(122)}
if([]==null){console.log(11)}else{console.log(122)}
if([]==undefined){console.log(11)}else{console.log(122)}
3、undefined作为判断条件时相当于false,undefined和布尔值直接比较时不是true也不是false
if(undefined){console.log(11)}else{console.log(122)}
if(undefined==true){console.log(11)}else{console.log(122)}
if(undefined==false){console.log(11)}else{console.log(122)}
if(!undefined==true){console.log(11)}else{console.log(122)}
if(undefined==null){console.log(11)}else{console.log(122)}
4、null作为判断条件时相当于false,null和布尔值直接比较时不是true也不是false
if(null){console.log(11)}else{console.log(122)}
if(null==true){console.log(11)}else{console.log(122)}
if(null==false){console.log(11)}else{console.log(122)}
if(null==undefined){console.log(11)}else{console.log(122)}
if(!null==true){console.log(11)}else{console.log(122)}