相关疑难解决方法(0)

为何使用!! 将变量强制转换为布尔值以用于条件表达式?

!!x将变量的类型强制x转换为布尔值,同时保持其真实性或缺乏真实性 - 请参阅此问题 - 我对条件表达式中使用此问题有疑问.

在JS代码中,我曾经看过几次曾经!!在一个if类似的条件下将变量强制转换为布尔类型

if(!!x) {
    x.doStuff();
}
Run Code Online (Sandbox Code Playgroud)

其中的想法是x在调用方法之前测试if是否已定义.

但是,在我自己的代码中,我总是使用它

if(x) {
    x.doStuff();
}
Run Code Online (Sandbox Code Playgroud)

x定义if的前提下,条件将通过,如果x未定义,则不会通过.

所以我的问题是在这种情况下强制x使用布尔值!!什么意思什么是这个代码这个代码不?

我假设其他程序员不只是使用它,因为它看起来很酷,所以要么这个或我的其他假设是错误的:-)

javascript

12
推荐指数
1
解决办法
694
查看次数

在JavaScript中不加(!!)vs类型强制

除了指示显式转换之外,在JavaScript中使用double not运算符是否有任何优势?它似乎在某些时候,人们喜欢使用double来检查新API的存在,但我从来没有读过任何优势.

if(!!window.File)
    // The File API is supported.
else
    // Your browser sucks.
Run Code Online (Sandbox Code Playgroud)

我读过的一件事是它是一种简单,模糊的方式来将类型转换为boolean,但是,当在此上下文中使用时,对象将被自动强制转换为boolean,因为我们正在检查它是否已定义.

简而言之,为什么人们会在引擎的顶部进行两次布尔操作?

javascript type-conversion not-operator

5
推荐指数
1
解决办法
714
查看次数

是个 !!操作员甚至在Javascript中需要?

当你想要将对象值转换为布尔值并将其保存在变量中时,我可以理解这种情况.但是,我在jQuery模板中遇到了以下代码,并想知道是否!! (双感叹号运算符)甚至是必要的.

{{if !!sectionId}}
    // do something...
{{/if}}
Run Code Online (Sandbox Code Playgroud)

我假设它不是因为Javascript会自动评估if作为布尔值后面的表达式.因此,你可以写:

{{if sectionId}}
    // do something...
{{/if}}
Run Code Online (Sandbox Code Playgroud)

我的假设是对的吗?

javascript jquery jquery-templates

3
推荐指数
1
解决办法
287
查看次数

为什么使用if(!! err)?

sequlize docs的代码示例中:

if (!!err) {
    console.log('Unable to connect to the database:', err)
} else {
    console.log('Connection has been established successfully.')
}
Run Code Online (Sandbox Code Playgroud)

他们为什么要(!!err)用来测试那个错误的真实性?是不是一样的if (err)

javascript node.js

3
推荐指数
1
解决办法
289
查看次数

为什么"if(!! variable)"而不是"if(variable)"?

在别人的代码中,我发现这种方式来测试变量的存在:

if(!!variable) {
  //Do something
} else {
  //Something else
}
Run Code Online (Sandbox Code Playgroud)

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

javascript

3
推荐指数
1
解决办法
112
查看次数

是否有必要使用双感叹号 (!!) 来确保对象不为空?

我最近开始!!在对象前使用双感叹号,以确保它不是空的,不是未定义的,也不是空字符串,以确保我涵盖了变量可以为空的所有不同方式。

这是必要的吗?很难阅读,例如: if(!!name)vsif(name)

对此有何意见?我希望我的代码是安全的,不会陷入可能发生空指针异常和其他事情的情况,但我也希望我的代码可读。

javascript

3
推荐指数
2
解决办法
3179
查看次数

if(!! condition)和if(condition)之间有什么区别

我经常看到使用的代码!!condition而不仅仅是常规条件.即:

if(!!value){
    doSomething();
}
Run Code Online (Sandbox Code Playgroud)

与:

if(value){
    doSomething();
}
Run Code Online (Sandbox Code Playgroud)

如果存在功能上的差异是什么?一个优于另一个?如果有的话,选择使用一个与另一个的条件是什么?

javascript

1
推荐指数
2
解决办法
425
查看次数