| 数据 | Boolean() | 备注 | console.log ( == 1/true) | 备注 | console.log ( == 0/false) | 备注 |
| 0 | false |
| false | true | ||
| 1 | true |
数字的布尔值为 true | true |
| false | |
| 10 | false | |||||
| "0" | true |
非空字符串 布尔值为 true | true |
| ||
| "1" | true |
字符串中只有 "1" 可转换为 1/ true | false | |||
| "10" | false | |||||
| "abc" | ||||||
| " " | false |
| true | 空字符串可转换为 0/ false | ||
| undefined | false | |||||
| null | ||||||
| NaN | ||||||
| Object | true |
任何对象 布尔值为 true | ||||
| Array |
| |||||
| [] | true | 空数组的布尔值为 true | true | 空数组可转换为 0/ false | ||
| {} | true | 空对象的布尔值为 true | false | 空对象不能转换为 0/ false | ||
| Infinity | true | |||||
| -Infinity | true | |||||
| -1 | true | 非 0 数字的布尔值为 true | false |
总结
布尔值为 false 的只有 6 种: false, 0, "" / '', undefined, null, NaN
任何其他类型的布尔值均为 true
布尔运算中, 并不是所有 true 值都相等, 也不是所有 false 值都相等
在 console.log (A == 1/ true) 的比较运算中:
- 1 == true // true
- "1" == true // true
- "abc" == true// false 除了 "1" 之外的非空字符串, 不能转换为 1
在 console.log (A == 0/ false) 的比较运算中:
- 0 == false // true
- "0" == false // true
- " " == false // true 空字符串可转换为 0
- "abc" == false // false 除了 "0" 之外的非空字符串, 不能转换为 0
- [ ] == false // true 空数组可转换为 0
- { } == false // false 空对象不能转换为 0
在 console.log ( A == B) 的比较运算中:
- undefined == null // true
- undefined == undefined // true
- null == null // true
- 除了以上情况, undefined 和 null 与任何其他类型的数据比较, 结果都为 false
- Infinity == Infinity // true
- -Infinity == -Infinity // true
- NaN 与任何数据类型比较结果都为 false, 包括 NaN 本身
在 console.log (A === B) 的比较计算中:
- undefined === null // true
- undefined === undefined // true
- null === null // true
- Infinity === Infinity // true
- -Infinity === -Infinity // true
本文探讨了JavaScript中布尔值的特性和不同数据类型的比较运算。总结了布尔值为false的情况,包括false, 0, 空字符串, undefined, null, NaN,并指出其他类型在布尔运算中通常为true。在比较运算中,如`A == 1/ true`,1和"1"等于true,但"abc"不等于true。同样,在`A == 0/ false`比较中,0, "0", 空字符串等于false,但空数组和空对象不等于false。此外,undefined和null在特定条件下相等,而NaN与任何数据类型比较都为false。"
47361227,5038517,通过ContentProvider获取Android系统联系人,"['Android开发', '数据库', 'ContentProvider']
1619

被折叠的 条评论
为什么被折叠?



