在布尔上下文中使用时,为什么要将对象转换为布尔值?

时间:2013-07-28 00:04:03

标签: javascript

我理解!!将任何内容转换为布尔值,但为什么要这样做:

if (!!someObject) { ... }

当你可以做的时候:

if (someObject) { ... }

编辑:

只是为了澄清,我只是问你为什么要像第一个例子那样编写代码,而不是第二个例子中的代码。有任何实际差异吗?

1 个答案:

答案 0 :(得分:1)

它们之间没有显着差异。因此,最有可能的是,这是个人偏好或明确意图。

尽管如此,这可能源于对如何或何时将价值视为布尔值的不确定性/误解。

但是,if statementsLogical NOT operators都使用内部ToBoolean()

  

如果ToBooleanGetValue exprRef ))是true,[...]

  

oldValue ToBooleanGetValue expr ))

运算符只需在ToBoolean()语句自己使用的基础上添加2轮if并加上否定。但是,结果是一样的。