有没有办法(布尔方法除外)将任何数据类型转换为布尔值?这是一个面试问题,我没有回答。
答案 0 :(得分:2)
Two Logical NOT !!
逻辑并不总是返回Boolean
值,无论其数据类型如何
用于:
If the operand is an object, `false` is returned.
If the operand is an empty string, `true` is returned.
If the operand is a nonempty string, `false` is returned.
If the operand is the number 0, `true` is returned.
If the operand is any number other than 0 (including Infinity), `false` is returned.
If the operand is null, `true` is returned.
If the operand is NaN, `true` is returned.
If the operand is undefined, `true` is returned.
逻辑NOT运算符也可用于将值转换为其布尔等效值。通过使用 连续两个NOT运算符,可以有效地模拟Boolean()转换的行为 功能。无论给出什么操作数,第一个NOT都返回一个布尔值。第二 NOT否定布尔值,因此给出变量的真实布尔值。最终的结果是 与在值
上使用Boolean()
函数相同
答案 1 :(得分:0)
转换为布尔值的抽象操作称为ToBoolean
:
false
false
false
,+0
或−0
,则结果为NaN
;否则结果为true
。false
;否则结果为true
。true
。但是,此操作是内部操作,不可用。
但是有一些解决方法可以使用它:
!!variable;
variable ? true : false;
Boolean(variable)
答案 2 :(得分:0)
隐式:
!!variable;
显式:
variable ? true : false;