我无法谷歌〜运营商了解更多关于它。有人能以简单的语言向我解释它的用途以及如何使用它?如何:〜运算符?
如何:〜运算符?
回答
这是一个bitwise NOT。
最常见的用途我见过一个双位NOT,去除一个数的小数部分,e.g:
var a = 1.2;
~~a; // 1
为什么不使用Math.floor
?微不足道的原因是它速度更快,并使用更少的字节。更重要的原因取决于你想如何对待负数。试想一下:
var a = -1.2;
Math.floor(a); // -2
~~a; // -1
所以,使用Math.floor
为舍去,使用~~
为斩去(不是一个技术术语)。
很明显,但对于任何感兴趣的人(我认为)“切断”的技术术语将是“截断”。使用双位不是为了这个目的可能会更快,并且使用比'Math.floor'更少的内存,但是由于JavaScript对数字值的整数,浮点数等没有区别,所以得到的数字仍然会使用相同数量的内存。 – 2011-06-07 04:40:46
我更喜欢parseInt(a) – JohnJohnGa 2011-08-26 08:39:30
这是一个代字符,它是位运算符NOT。
〜是一个按位NOT运算符。它将反转构成存储变量值的位。
我会'+ 1'进一步阅读...但链接不再起作用... – 2013-10-01 23:03:17
我看到的〜(Tilde)的一个用法是获取.indexOf()的布尔值。
你可以使用:if(~myArray.indexOf('abc')){ };
取而代之的是:if(myArray.indexOf('abc') > -1){ };
附加信息:The Great Mystery of the Tilde(~)
搜索引擎,允许特殊字符:Symbol Hound
- 1. 定时运算符+,运算符,运算符*和运算符/
- 2. 如何重载运算符=
- 3. 如何使用?:运算符
- 4. 如何使用%运算符?
- 5. 如何重载==运算符?
- 6. 如何超载运算符+
- 7. 如何重载运算符[] []
- 8. TaffyDB OR运算符如何?
- 9. 如何覆盖==运算符
- 10. 如何定义运算符= =
- 11. 如何比`运算符'更倾向于`运算符T()`转换?
- 12. 运算符重载如何为赋值运算符工作?
- 13. 如何将RxJS5运算符链接到新的运算符?
- 14. Java运算符 - >如何==运算符工作
- 15. 如何用UNION运算符替换OR运算符?
- 16. 如何计算一组运算符
- 17. 运算符重载“运算符T *()”产生比较运算符?
- 18. C++:运算符重载,运算符+
- 19. =>运算符vs =运算符
- 20. |运算符,++和I运算符
- 21. 布尔运算符的位运算符
- 22. []运算符的运算符过载
- 23. 运算符重载运算符()'
- 24. 运算符超载赋值运算符
- 25. ||运算符与=运算符相同吗?
- 26. 算术运算符
- 27. 如何过载运算符矩阵运算使用VB.net编码
- 28. 如何重写斯威夫特++运算符:三元运算
- 29. 使用`**`作为运算符运算符快速运行,运算符'-`
- 30. 如何从字符串中分析算术运算符?
了解更多关于它的好地方是[Google Tech Talk](http://www.youtube.com/user/GoogleTechTalks?),然后搜索javascript – Ibu 2011-06-07 04:09:29