为什么用“ if(!! variable)”而不是“ if(variable)”?

Arnaud Denoyelle

在其他人的代码中,我发现了这种方法来测试变量的存在:

if(!!variable) {
  //Do something
} else {
  //Something else
}

有理由if(!!variable)代替进行测试if(variable)吗?这是一个好习惯吗?

詹姆斯·索普

有理由if(!!variable)代替进行测试if(variable)吗?

不。

使用if()无论如何都会将条件强制转换为布尔值,因此无需手动执行。当您想保证在其他地方有布尔值时,使用这种语法很有意义,例如,如果您想记录表达式的真实性:

console.log(!!variable)

这将确保您获取truefalse登录,而不是获取变量的原始值。但是里面有if这没什么区别。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

丑陋的双打-为什么用2.9000000000000004而不是2.9?

来自分类Dev

为什么用阴谋而不是使

来自分类Dev

为什么用C ++语法static_assert是声明而不是postfix-expression?

来自分类Dev

为什么用函子而不是函数指针实现C ++ lambda?

来自分类Dev

为什么用format()函数抛出异常而不是编译时错误?

来自分类Dev

为什么用一个参数而不是两个参数调用释放函数?

来自分类Dev

为什么用M = L +((R-L)/ 2)而不是M =(L + R)/ 2来避免C ++中的溢出?

来自分类Dev

为什么用大括号init初始化对象是合法的,即使它不是聚合的?

来自分类Dev

在Python中,为什么用“ r +”而不是“ rw”来表示“读写”?

来自分类Dev

为什么用n而不是b或d或什么都不会改变此脚本中sed的行为?

来自分类Dev

为什么用“ Is”而不是“ IsNot”进行编译?

来自分类Dev

PHP / Symfony-为什么用Twig渲染的控制器异常不是仅在生产模式下捕获的?

来自分类Dev

使用变量而不是字符串时,为什么我的element:contains(variable)无法工作?jQuery的

来自分类Dev

为什么用二进制补码(-1 >> 1)== -1而不是0?

来自分类Dev

为什么用string_view而不是广义的container_view <T>?

来自分类Dev

为什么用大O标记表示恒定时间执行O(1)而不是O(2)?

来自分类Dev

为什么用单个字符而不是单个字符串填充PSCustomObject?

来自分类Dev

为什么libcxx的condition_variable是constexpr和noexcept,但在标准中不是?

来自分类Dev

为什么用.Call而不是.C调用C ++函数时出现段错误?

来自分类Dev

为什么用arr [:] [np.newaxis] .shape =(1,n)而不是(n,1)?

来自分类Dev

丑陋的双打-为什么用2.9000000000000004而不是2.9?

来自分类Dev

为什么用format()函数抛出异常而不是编译时错误?

来自分类Dev

为什么用函数获取记录而不是表?

来自分类Dev

为什么用===而不是==来表示未定义

来自分类Dev

C-为什么用&而不是switch / if比较常数?

来自分类Dev

Shell:为什么用[-n“ $ {VAR-}”]而不是[-n“ $ VAR”]?

来自分类Dev

为什么用[[-n $ var]]而不是[[$ var]]?

来自分类Dev

为什么用“ if(!! variable)”而不是“ if(variable)”?

来自分类Dev

为什么 'var' % {1: 'variable'} 打印 'var' 而不是像 'var' % (1,) 那样引发异常 TypeError?

Related 相关文章

  1. 1

    丑陋的双打-为什么用2.9000000000000004而不是2.9?

  2. 2

    为什么用阴谋而不是使

  3. 3

    为什么用C ++语法static_assert是声明而不是postfix-expression?

  4. 4

    为什么用函子而不是函数指针实现C ++ lambda?

  5. 5

    为什么用format()函数抛出异常而不是编译时错误?

  6. 6

    为什么用一个参数而不是两个参数调用释放函数?

  7. 7

    为什么用M = L +((R-L)/ 2)而不是M =(L + R)/ 2来避免C ++中的溢出?

  8. 8

    为什么用大括号init初始化对象是合法的,即使它不是聚合的?

  9. 9

    在Python中,为什么用“ r +”而不是“ rw”来表示“读写”?

  10. 10

    为什么用n而不是b或d或什么都不会改变此脚本中sed的行为?

  11. 11

    为什么用“ Is”而不是“ IsNot”进行编译?

  12. 12

    PHP / Symfony-为什么用Twig渲染的控制器异常不是仅在生产模式下捕获的?

  13. 13

    使用变量而不是字符串时,为什么我的element:contains(variable)无法工作?jQuery的

  14. 14

    为什么用二进制补码(-1 >> 1)== -1而不是0?

  15. 15

    为什么用string_view而不是广义的container_view <T>?

  16. 16

    为什么用大O标记表示恒定时间执行O(1)而不是O(2)?

  17. 17

    为什么用单个字符而不是单个字符串填充PSCustomObject?

  18. 18

    为什么libcxx的condition_variable是constexpr和noexcept,但在标准中不是?

  19. 19

    为什么用.Call而不是.C调用C ++函数时出现段错误?

  20. 20

    为什么用arr [:] [np.newaxis] .shape =(1,n)而不是(n,1)?

  21. 21

    丑陋的双打-为什么用2.9000000000000004而不是2.9?

  22. 22

    为什么用format()函数抛出异常而不是编译时错误?

  23. 23

    为什么用函数获取记录而不是表?

  24. 24

    为什么用===而不是==来表示未定义

  25. 25

    C-为什么用&而不是switch / if比较常数?

  26. 26

    Shell:为什么用[-n“ $ {VAR-}”]而不是[-n“ $ VAR”]?

  27. 27

    为什么用[[-n $ var]]而不是[[$ var]]?

  28. 28

    为什么用“ if(!! variable)”而不是“ if(variable)”?

  29. 29

    为什么 'var' % {1: 'variable'} 打印 'var' 而不是像 'var' % (1,) 那样引发异常 TypeError?

热门标签

归档