经常看到大家用 if (!value) 的方式来判断,那么哪些情况下为 true,哪些情况下为 false 呢?
value 值 | !value 结果 |
undefined | true |
null | true |
false | true |
0 | true |
"" | true |
"false" | false |
"0" | false |
0+"" | false |
[] | false |
注意:上述 value 的类型我们是根据值来确定的,而在对 value 赋值时,有些场景会自动识别类型,有些则统一当作字符串类型,比如同样的参数,如果通过 JSON 传,它会根据你有没有加引号而识别为:0 或 "0",而在浏览器 QueryString 中,只要我们不转换它,它取下来始终被当作 "0" 对待。