Javascript 如何:操作员?

Javascript 如何:操作员?,javascript,Javascript,我无法通过谷歌搜索~operator来了解更多信息。有人能用简单的语言向我解释一下它的用途和使用方法吗?它是一个波浪线,是按位NOT运算符。~是一个按位NOT运算符。它将反转构成存储变量值的位 这是一个好主意 我见过的最常见的用法是双位NOT,用于删除数字的小数部分,例如: var a = 1.2; ~~a; // 1 为什么不使用Math.floor?简单的原因是它更快,使用更少的字节。更重要的原因取决于你想如何对待负数。考虑: var a = -1.2; Math.floor(a); //

我无法通过谷歌搜索~operator来了解更多信息。有人能用简单的语言向我解释一下它的用途和使用方法吗?

它是一个波浪线,是按位NOT运算符。

~是一个按位NOT运算符。它将反转构成存储变量值的位

这是一个好主意

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

var a = 1.2;
~~a; // 1
为什么不使用
Math.floor
?简单的原因是它更快,使用更少的字节。更重要的原因取决于你想如何对待负数。考虑:

var a = -1.2;
Math.floor(a); // -2
~~a; // -1
因此,使用
Math.floor
进行四舍五入,使用
~
进行切掉(不是一个技术术语)。

我见过的一个使用~(Tilde)的用法是将.indexOf()变成布尔值

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

而不是这个:
if(myArray.indexOf('abc')>-1){}


其他信息:


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

一个了解更多信息的好地方是搜索Javascript。这很明显,但对任何感兴趣的人来说,(我认为)“截断”的技术术语是“截断”。使用双位非此目的可能比
Math.floor
更快,占用的内存更少,但是结果数字仍然会使用相同的内存量,因为JavaScript对数值不区分整数、浮点等。