我看到一些代码似乎使用了一个我无法识别的运算符,以两个感叹号的形式出现,如下所示:!!.有人可以告诉我这个运营商的作用吗?
我看到这个的背景是,
this.vertical = vertical !== undefined ? !!vertical : this.vertical;
Run Code Online (Sandbox Code Playgroud) 我知道它将!!variable把变量转换为布尔值Boolean(),并且根据 ecma262 规范,函数还将通过调用ToBoolean(value).
我的问题是:有什么区别?!!性能比 Boolean() 更好吗?
以下JavaScript布尔三元表达式是否有速记语法:
var foo = (expression) ? true : false
Run Code Online (Sandbox Code Playgroud)