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

标签 javascript

我明白 !! 会将任何东西转换为 bool 值,但你为什么要这样做:

if (!!someObject) { ... }

什么时候可以做:

if (someObject) { ... }

编辑:

澄清一下,我只是问您为什么要编写第一个示例中的代码,而不是第二个示例中的代码。有任何实际差异吗?

最佳答案

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

不过,这可能是由于不确定/误解了值如何或何时被视为 bool 值。

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

If ToBoolean(GetValue(exprRef)) is true, [...]

Let oldValue be ToBoolean(GetValue(expr))

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

关于javascript - 在 bool 上下文中使用时,为什么要将对象转换为 bool 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17903697/

相关文章:

javascript - 当第 3 方 Cookie 和/或站点数据被禁用时,Chrome 扩展程序无法访问 localStorage

javascript - net::ERR_CONNECTION_REFUSED 到cube.dv

javascript - 添加多个有限制的数组

javascript - 正则表达式匹配多组

javascript - 将参数传递给 foreach 循环

javascript - $scope变量不断变化

javascript - 在 TypeScript 中将数字转换为字符串

javascript - 函数仅适用于第二次调用

javascript - dojo foreach 函数

javascript - 获取元素相对于最顶层窗口的位置的函数