两种取反(~ 和 !)放在if代码块中做条件判断

举报
veranew 发表于 2020/06/22 14:47:50 2020/06/22
【摘要】 两种取反(~ 和 !)放在if代码块中做条件判断。

之前写if语句的时候,括号中都是这样写的:


if (time < 10) {
    // do some things
 }


if (index > -1) {
// do some things
}


if (value === 200) {
// do some things
}

```

这样的代码其实也是可以的,不过对于有些代码可能有更简洁的方式。


1. 判断存不在时,可以用 ! 取反


const arr = [1, 2, 3, 4, 5]
const isExist = arr.includes(6) // true
if (!isExist) {
// do some things
arr.push(6)
}


2. 判断index > -1 时,可利用**按位取反运算符(~)**,来取布尔值。


if (~index) {
// do some things
}


知识补充,戳这里,菜鸟教程


或者戳这里,W3school


需要说明的是,位运算是针对二进制的运算。


 从现代计算机中所有的数据二进制的形式存储在设备中。即 0、1 两种状态,计算机对二进制数据进行的运算(+、-、*、/)都是叫位运算,即将符号位共同参与运算的运算。


image.png

image.png



若`index  ===  -1`,`~index`得到0,判断不成立;若`index`不为-1,则`~index`得到非0,判断成立。


位运算目前个人来讲,都没有用到,不过因为看到涉及了二进制,会觉得跟底层有一些联系,我们非计算机出身的有时候看看这些应该也是好事儿~ 以后可能会有用的吧~


祝大家学得开心~ 


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。