JavaScript中的~~有什么用途?

3

简单回答:最快的去除小数操作(与按位或一样快)~~3.14 等同于 3.14 | 0 - Robert Koritnik
3个回答

5

~是JavaScript(以及C/C++和其他语言)中的按位取反运算符。你可以在这里找到更多细节:How does the bitwise complement (~) operator work?

在这种情况下:

  • 3.14从浮点数转换为整数,因此变成了3
  • ~3-4,因为使用二进制补码表示。
  • 然后~(-4)变成了3

基本上,对于使用二进制补码表示的整数,~n等于-n-1


4

波浪号会将输入转换为32位整数后执行按位取反操作。

来自MDN

对任何数字x执行按位取反操作,会得到-(x + 1)。例如,~5得到-6

在你的情况下:

  ~~3.14
= -((~3.14) + 1)
= -(-(3.14 + 1) + 1)
= -(-(3 + 1) + 1)
= -(-4 + 1)
= -(-3)
= 3

3

它将返回3。在JavaScript中,~代表位非运算符。

基本上,~3.14与~3相同,即~011(二进制)=> 100或10进制中的4。 ~4或~100是011或10进制中的3。


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