如何: ~ 操作符?

IT技术 javascript
2021-03-08 18:31:28

我无法通过 google 搜索 ~ 运营商以了解更多信息。有人可以用简单的语言向我解释它是什么以及如何使用它吗?

4个回答

它是按位 NOT

我见过的最常见的用法是双按位 NOT,用于删除数字的小数部分,例如:

var a = 1.2;
~~a; // 1

为什么不使用Math.floor微不足道的原因是它更快并且使用更少的字节。更重要的原因取决于您想如何处理负数。考虑:

var a = -1.2;
Math.floor(a); // -2
~~a; // -1

所以,Math.floor用于四舍五入~~用于砍掉 (不是技术术语)

很明显,但对于任何感兴趣的人来说,(我认为)“砍掉”的技术术语将是“截断”。不用于此目的的按位使用 double 可能比 更快并且使用更少的内存Math.floor,但结果数字仍将使用相同数量的内存,因为 JavaScript 不区分整数、浮点数等数值。
2021-04-24 18:31:28

我见过的 ~ (波浪号) 的一种用法是为 .indexOf() 获取布尔值。

你可以使用: if(~myArray.indexOf('abc')){ };

取而代之的是: if(myArray.indexOf('abc') > -1){ };

JSFiddle 示例


附加信息:波浪号的大奥秘(~)

允许特殊字符的搜索引擎:Symbol Hound

这是一个波浪号,它是按位非运算符。