问题
你觉得Boolean('false') === false吗, Boolean([]) === false吗?
答案
Boolean('false') === true, Boolean([]) === true
验证
原因
Boolean 对象表示两个值:"true" 或 "false"
但是能使Boolean为flase的只有6种情况:
- undefined(未定义,找不到值时出现)
- null(代表空值)
- false(布尔值的false,字符串"false"布尔值为true)
- 0(数字0,字符串"0"布尔值为true)
- NaN(无法计算结果时出现,表示"非数值";但是typeof NaN==="number")
- ""(双引号)或''(单引号) (空字符串,中间有空格时也是true)
注意空数组空对象,负值转的布尔值时都为true