首頁  >  文章  >  web前端  >  JavaScript 中的雙斜線運算子 (~~) 是什麼?

JavaScript 中的雙斜線運算子 (~~) 是什麼?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-01 09:05:02227瀏覽

What is the Double Tilded Operator (~~) in JavaScript and How Does It Compare to Math.floor()?

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn