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

📅  最后修改于: 2023-12-03 15:36:08.144000             🧑  作者: Mango

JavaScript中的双波浪号(~~)运算符

在JavaScript中,双波浪号(~~)运算符是一种按位取反的运算符。它的作用是将操作数转换为32位整数,并将其每一位取反,最后返回一个新的32位整数。

下面是一个简单的例子:

const num = 5;
console.log(~~num); // 输出: 5

在上面的例子中,我们使用双波浪号运算符将数字5转换成32位整数,并对其进行按位取反。由于5的二进制表示为101,按位取反后为010,即2,因此输出结果为5。

双波浪号运算符可以用于快速取整,将任何数字转换为整数。下面是一个例子:

const num = 3.1415926;
console.log(~~num); // 输出: 3

在上面的例子中,我们使用双波浪号运算符将浮点数3.1415926转换成整数,并直接截取小数部分,即输出结果为3。

需要注意的是,双波浪号运算符只适用于有符号32位整数范围内的数字,即-2147483648 ~ 2147483647之间的数字。对于超出该范围的数字,其行为是不确定的。

总之,双波浪号运算符是一种很有用的位运算符,可以用于快速取整和将数字转换为32位整数。当然,在实际开发中,我们应该尽量避免使用位运算符,以免代码难以理解和维护。