我看到一些代码似乎使用了一个我无法识别的运算符,以两个感叹号的形式出现,如下所示:!!.有人可以告诉我这个运营商的作用吗?
我看到这个的背景是,
this.vertical = vertical !== undefined ? !!vertical : this.vertical;
Run Code Online (Sandbox Code Playgroud) 我理解double not运算符在JavaScript中的作用.我很好奇它的使用,以及我最近做出的断言是否正确.
我说这if (!!someVar)从来没有意义,也不是(!!someVar && ...因为它if和&&将导致someVar被评估为布尔值所以!! 是多余的.
事实上,我唯一能想到使用double not运算符是合法的,如果你想对另一个布尔值进行严格的比较(那么可能在返回值中明确要求true或false).
它是否正确?我开始怀疑自己的时候,我注意到的jQuery 1.3.2同时使用if (!!someVar)和return !!someVar && ...
双重在这些情况下没有任何实际效果吗?
我个人认为,这只是导致混乱.如果我看到if语句,我知道它将它作为布尔值进行评估.