📜  什么是 JavaScript 中的“双波浪号”(~~)运算符?

📅  最后修改于: 2022-05-13 01:56:44.175000             🧑  作者: Mango

什么是 JavaScript 中的“双波浪号”(~~)运算符?

这是 JavaScript 中一种特殊的运算符。要理解双波浪号运算符,首先,我们需要讨论波浪号运算符或按位非。 (~) 波浪号运算符接受任何数字并将二进制数字反转,例如,如果数字在反转后是 (100111),它将是 (011000)。因此,如果我们仔细考虑会发现,将一个数字反转两次后,它会和以前一样,例如,再次反转 (011000),它会变成之前的 (100111)。

使用双波浪号 (~~)运算符后,我们可以从我们开始的地方到达数字,那么这个开销有什么用呢?这个概念是在反转数字时,此 (~)运算符将它们转换为不保留小数值的 32 位有符号整数。当我们再次反转该有符号整数时,它会导致正常反转,因此,数字要么成为原始数字的下限(小于或等于数字)或 ceil(大于或等于的整数)等于原数的数)。

下面是这个运算符的用法。

用法:

  1. 它被用作计算地板的替代方法,而不是使用 Math.floor(),但条件是给定的数字应该是正数。
  2. 它用作计算小数的整数部分的替代方法,而不是使用 Math.trunc(),但条件是给定的数字应该是负数。
  3. 它用作计算 ceil 的替代方法,而不是使用 Math.ceil(),但条件是给定的数字应该是负数。

示例:以下示例演示了上述两个功能。首先,我们已经声明了一个变量,并且提示正在接受用户的输入。我们正在使用 ~~运算符,它将计算数字的下限,如果输入的数字是正数,或者如果输入的数字是负数,它会计算数字的上限。

HTML


输出: