5

我知道这!!会将任何内容转换为布尔值,但是您为什么要这样做:

if (!!someObject) { ... }

当你可以这样做时:

if (someObject) { ... }

编辑:

为了澄清起见,我只是问你为什么要编写第一个示例中的代码,而不是第二个示例中的代码。有什么实际区别吗?

4

1 回答 1

1

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

不过,这可能是由于对如何或何时将值视为布尔值的不确定性/误解。

但是,if语句逻辑非运算符都使用内部ToBoolean()

如果ToBoolean( GetValue( exprRef )) 是true, [...]

oldValueToBoolean( GetValue( expr ))

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

于 2013-07-28T00:15:41.913 回答