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

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

阅读 2.5k
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个是一样的, 纯粹是乱写

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