为什么使用!!(a&&b)而不是(a&&b)进行能力检测

高程书第九章客户端检测给出的实例中多次出现!!(a&&b)的表达式
如果是进行布尔值转换的话
&&运算出来直接就是布尔值 为什么要加!!呢
eg:var hasNSPlugins = !!(navigator.plugins&&navigator.plugins.length);

阅读 2.3k
3 个回答

&&运算出来的结果不一定是Boolean,比如 1 && 2 返回 2

1&2 = 0
&&&不是一回事

虽然说 & 和 && 不是一回事,
但是其实并不推荐 !! 这种写法, ESLint 严格版规则中,这写的写法,通不过检查

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏