node.js !!process.env.PORT 为何要用二个"!"操作符?

新手上路,请多包涵

在一个opersource node.js项目中看到这样写:

var isUseHTTPs = !(!!process.env.PORT || !!process.env.IP);

请问:为什么process.env.PORT前需要用二个非操作符,有什么好处?

阅读 4.4k
2 个回答

不管!!右边是啥,最后都能转成布尔值。

!操作符会将操作数的值转为布尔类型,然后取反。连续使用两次等价于将操作数转为布尔类型。相当于其他语言中的强制类型转换

B = (boolean)A

当你希望把一个值作为布尔类型使用时,可以使用这个技巧。

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