JavaScript 中的雙傾斜運算符(~~)
問題:
在在某些程式碼中範例中,遇到「雙波形符」(~~) 運算子。它的用途是什麼?它與 Math.floor() 函數有何不同?
答案:
~~ 運算子是雙位非運算子。它提供比 Math.floor() 函數更快且正的數值結果。
雙位元 NOT 運算將數字轉換為 32 位元整數,然後套用位元 NOT 運算子 (~) 兩次。結果值為:
~~x = -(~~~x + 1)
由於 ~ 運算子翻轉位元模式中的 0 和 1,因此 ~~ 操作透過將正數截斷為零來有效地去除正數的小數部分。
與Math.floor() 函數的差異:
雖然 可以用作正數的Math.floor() 更快的替代品,但它不會產生負數的結果相同。 只是去掉小數部分,而 Math.floor() 向下捨入到最接近的整數。
範例:
console.log(~~2.3); // Output: 2 (equivalent to Math.floor(2.3)) console.log(~~-2.3); // Output: -2 (different from Math.floor(-2.3) which equals -3)
以上是JavaScript 中的雙斜線運算子 (~~) 是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!