首頁 > web前端 > js教程 > 主體

## JavaScript 中的 ~~ 運算子有什麼作用?

Barbara Streisand
發布: 2024-10-25 12:55:03
原創
562 人瀏覽過

## What Does the ~~ Operator Do in JavaScript?

破解JavaScript 中的~~ 運算子

在深入研究遊戲實體庫時,您可能遇到神秘的~~ 運算符。它與 ~(位元 NOT)運算子的相似之處促使您質疑其功能。它只是一個雙重否定,會傳回相同的值嗎?

令人驚訝的是, ~~ 運算子實際上超越了其位元 NOT 的起源。它在 JavaScript 中有一個獨特的用途:消除小數點後的所有內容。

小數點刪除背後的原因

此行為源自於操作數隱式轉換為有符號 32執行位元運算之前的位元整數。因此,~~ 運算子的行為如下:

function(x) {
  if(x < 0) return Math.ceil(x);
  else return Math.floor(x);
}
登入後複製

但是,需要注意的是,此轉換僅適用於輸入值(x) 落在-(2^31) 到2^31 - 1 . 超出這些邊界會導致資料溢出,可能導致意外行為。

使用 ~~

的優點和缺點儘管它能夠轉換從字符串到數字,應謹慎使用 ~~,因為它容易溢出。此外,其預期目的與數值轉換並不完全一致。相反,x 或 Number(x) 提供了更可靠和直觀的選項。

按位NOT 邏輯

理解為什麼~~ 充當32 位的雙重否定整數,讓我們考慮二進位-43.2:

  • -43.2 的範例: 1111111111111111111111111010101
  • 按位NOT:
  • 雙重否定:
  • 再次反轉所有位,恢復原始二進位表示: 11111111111111111111111111010101
  • 十進位轉換:
  • -43.0 十進位轉換:
  • -43.0

十進位轉換到小數截斷之前的初始狀態。

以上是## JavaScript 中的 ~~ 運算子有什麼作用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!