如果JavaScript预期某个位置应该是布尔值,会将该位置上现有的值自动转为布尔值。转换规则是除了下面六个值被转为false,其他值都视为true。
undefined
null
false
0
NaN
""或''(空字符串)
需要特别注意的是,空数组([])和空对象({})对应的布尔值,都是true。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> <script> // 如果JavaScript预期某个位置应该是布尔值,会将该位置上现有的值自动转为布尔值。转换规则是除了下面六个值被转为false,其他值都视为true。 // undefined // null // false // 0 // NaN // ""或''(空字符串) // 需要特别注意的是,空数组([])和空对象({})对应的布尔值,都是true。 var b=''; if(!b){ console.log('空值默认是false'); } var c=NaN; if(!c){ console.log('NAN也是false'); } if(!0){ console.log("0也是false"); } if(!undefined){ console.log('undefined也是false'); } if(!null){ console.log('null也是false'); } if(!false){ console.log('false本身'); } if([]){ console.log("空数组是true"); } if({}){ console.log('空对象也是true'); } </script> </body> </html>