最近做一项目,输入一个boolean类型的参数,结果一致无法获取正确值,后在网上查找才发现原因如下,转帖保存一个;
01. "false" as Boolean //flase 02."true" as Boolean //false 03.Boolean("flase") //true 04.Boolean("true")//true
05.Boolean(Number("0"));//false
06.Boolean(Number("1"));//true
"false" as Boolean 是flase
是一个字符串,而不是Boolean 类型,所以是false
Boolean("flase") 是true
判断一个字符串是否为空,不看里面的内容
很明显,这不是一个空的字符串
将 expression 参数转换为布尔值并返回该值。
返回值取决于参数的数据类型和值,如下表所述:
输入值 | 示例 | 返回值 |
---|---|---|
0 | Boolean(0) | false |
NaN | Boolean(NaN) | false |
数字(非 0 或 NaN ) | Boolean(4) | true |
空字符串 | Boolean("") | false |
非空字符串 | Boolean("6") | true |
null | Boolean(null) | false |
undefined | Boolean(undefined) | false |
Object 类的实例 | Boolean(new Object()) | true |
无参数 | Boolean() | false |
要直观,还是只有
if(str == "true")了