在javascript中,运算符'〜'和'!'之间有什么区别

时间:2013-07-04 18:06:18

标签: javascript

我没有理论,我不知道还能说些什么。

到目前为止,我一直认为两者都将值改为false。

但是,!,更改为true / false。

虽然,〜,负数变为1,因此2变为-3。为什么以及如何。

3 个答案:

答案 0 :(得分:1)

〜(按位非)

在每个位上执行NOT运算符。不是a得到a的倒置值(a.k.a.的补码)。 NOT操作的真值表是:

a   NOT a
0   1
1   0

示例

9 = 00000000000000000000000000001001 (base 2)
               --------------------------------
~9 = 11111111111111111111111111110110 (base 2) = -10 (base 10)

来自The tilde ~ operator in JavaScript的答案。

答案 1 :(得分:0)

!logical operator,其结果是truefalse,而~bitwise运算符。

如果您不理解“~number -number - 1为什么要查看two's complement

  

我没有理论,我不知道还能说些什么。

在这种情况下,请查看language's documentation

答案 2 :(得分:0)

!是一个布尔运算符,它否定了布尔表达式的结果。

〜另一方面是按位非运算符,它基本上意味着,它会翻转操作数中的所有位,比如-1,它由所有1位表示为0(表示设置为0位)。 / p>