我無法谷歌〜運營商瞭解更多關於它。有人能以簡單的語言向我解釋它的用途以及如何使用它?如何:〜運算符?
如何:〜運算符?
回答
這是一個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