我无法通过谷歌搜索~运算符来了解更多信息。请有人用简单的话解释一下它是干什么的以及如何使用它?
我无法通过谷歌搜索~运算符来了解更多信息。请有人用简单的话解释一下它是干什么的以及如何使用它?
这是一个按位非。
我看到最常见的用法是双重按位非,用于去除数字的小数部分,例如:
var a = 1.2;
~~a; // 1
为什么不使用Math.floor
呢?一个微不足道的原因是它更快且使用的字节数更少。更重要的原因取决于您如何处理负数。考虑以下情况:
var a = -1.2;
Math.floor(a); // -2
~~a; // -1
因此,在需要向下取整时,请使用Math.floor
,在需要截断小数部分(非技术术语)时,请使用~~
。
Math.floor
更快且使用的内存更少,但由此得出的数字仍将使用相同数量的内存,因为JavaScript对于数值类型(整数、浮点数等)并没有区分。 - Cristian Sanchez我看到过 ~(波浪号)的一种用法是获取.indexOf()的布尔值。
您可以使用:if(~myArray.indexOf('abc')){ };
而不是:if(myArray.indexOf('abc') > -1){ };
附加信息:波浪线(~)的伟大之谜
允许特殊字符的搜索引擎:Symbol Hound
这是一个波浪线,它是按位取反运算符。