JavaScript中的~~是什么?

16

我只是随意摆弄一些东西,然后我发现了一些有趣的东西...

如果在数字前面加上 ~ ,例如我尝试过

~110100100 // result will be  " -110100101 "
~11 // result will be " -12 "

把它变成负数并减去1?我不知道,有人可以解释一下吗?


1
补码 https://zh.wikipedia.org/wiki/%E8%A1%A5%E7%A0%81 - Jaromanda X
啊,谢谢你的回答! - Adarsh Hegde
1个回答

43

运算符~返回结果:

~N = -(N+1)

但这是通过反转变量所有位的值而产生的效果。

双连续波浪线~~用于将某些类型转换为int,因为~运算符在反转其位之前将值转换为32位int。因此:

~~'-1' = -1
~~true = 1
~~false = 0
~~5.6 = 5

1
哦,谢谢!我以前从未见过这种广泛使用,所以感到困惑。 - Adarsh Hegde
1
不错。简短而言简意赅! - Llama D'Attore

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接