据我所知,一元运算!符执行隐式类型转换,有时用于类型转换.
所以基本上!操作符将其操作数转换为布尔值并取消它.
现在:
!!x // Same as Boolean(x)
Run Code Online (Sandbox Code Playgroud)
事实上:
!!'true' === Boolean('true') // true
Run Code Online (Sandbox Code Playgroud)
所以我假设两者!!x并Boolean(x)执行相同的操作.
我想知道:
您的假设是正确的。这正是它的工作方式,我不知道使用此工具时要特别注意。
说到良好实践,您可能会和支持!!使用该Boolean功能的人一样多。但是,根据我的经验,这似乎
!!在库代码中更为常见(请看jQuery源,您有很多类似的东西return !!locked;)。恕我直言,在不降低代码可读性的情况下,可以充分使用它。
在ECMAScript中很久以来这都是标准; 我不能说Internet Explorer的旧版本(在IE 8之前),但是在这种情况下,您几乎可以信任所有现代浏览器的行为。
标准中的有用参考:
| 归档时间: |
|
| 查看次数: |
456 次 |
| 最近记录: |