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)}