想问大家写js代码都是喜欢加上两三个逻辑非的感叹号!吗

加那么多逻辑非作用在哪?两个感叹号和不加,那不是一样吗,还有加三个的,晕死

阅读 2.7k
4 个回答

三个就过分了,属于乱写。

一个,两个是类型转换,需要的时候可以用。

通常加上两个感叹号,是为了把其他的类型转为boolean类型,一般情况下很少这样做,但也有一些特殊的情况,比如一个检测当前是否有安装某款APP,客户端的jsapi提供的是0和1来表示的,我感觉这样不太明朗,最后就统一转成boolean类型:

function checkAppIsInstalled():Promise<boolean> {
    return new Promise(resolve => {
        news.checkInstalled(result => resolve(!!result)) // 将数字类型转为布尔类型
    })
}

1个和2个是类型转换

!foo 和 !!foo 这样出来的肯定是bool类型的

这样写是个人习惯

3个和1个是一样的, 纯粹是乱写

推荐问题