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

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

推荐问题