相关疑难解决方法(0)

是什么 !!(不是)JavaScript中的运算符?

我看到一些代码似乎使用了一个我无法识别的运算符,以两个感叹号的形式出现,如下所示:!!.有人可以告诉我这个运营商的作用吗?

我看到这个的背景是,

this.vertical = vertical !== undefined ? !!vertical : this.vertical;
Run Code Online (Sandbox Code Playgroud)

javascript operators

2906
推荐指数
32
解决办法
51万
查看次数

何时在JavaScript中使用double not(!!)运算符

我理解double not运算符在JavaScript中的作用.我很好奇它的使用,以及我最近做出的断言是否正确.

我说这if (!!someVar)从来没有意义,也不是(!!someVar && ...因为它if&&将导致someVar被评估为布尔值所以!! 是多余的.

事实上,我唯一能想到使用double not运算符是合法的,如果你想对另一个布尔值进行严格的比较(那么可能在返回值中明确要求true或false).

它是否正确?我开始怀疑自己的时候,我注意到的jQuery 1.3.2同时使用if (!!someVar)return !!someVar && ...

双重在这些情况下没有任何实际效果吗?

我个人认为,这只是导致混乱.如果我看到if语句,我知道它将它作为布尔值进行评估.

javascript boolean operators

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

为什么使用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(!! 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
查看次数

标签 统计

javascript ×4

operators ×2

boolean ×1

node.js ×1