Rumah  >  Artikel  >  hujung hadapan web  >  ## Apakah yang Sebenarnya Dilakukan Operator ~~ (Double Tilde) dalam JavaScript?

## Apakah yang Sebenarnya Dilakukan Operator ~~ (Double Tilde) dalam JavaScript?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-30 09:16:03203semak imbas

## What Does the ~~ (Double Tilde) Operator Really Do in JavaScript?

Meneroka Operator Ajaib ~~ (Double Tilde) dalam JavaScript

Dalam alam pengembaraan JavaScript, anda mungkin telah menemui misteri pengendali. Pada pandangan pertama, ia menyerupai tilde tunggal ~, operator NOT bitwise yang boleh dipercayai. Adakah ini bermakna melakukan double NOT, hanya mengembalikan nilai yang sama? Mari kita selami lebih dalam dan temui tujuan sebenarnya.

Menyingkap Kebenaran

Rahsia pengendali terletak pada cara ia mentafsir operannya. Tidak seperti tilde tunggal, menukar inputnya kepada integer 32-bit yang ditandatangani, walaupun ia nombor atau rentetan. Dengan penukaran ini, ia melakukan operasi bitwise yang secara berkesan mengalih keluar semua selepas titik perpuluhan.

Dalam erti kata lain, operator ini berkelakuan seperti fungsi berikut:

<code class="javascript">function(x) {
  if(x < 0) return Math.ceil(x);
  else return Math.floor(x);
}</code>

Walau bagaimanapun, ia hanya berfungsi dengan betul untuk nilai antara -(231) dan 231 - 1 untuk mengelakkan limpahan.

Mengapa ~~ bukan BUKAN daripada BUKAN

Adalah penting untuk memahami bahawa tidak bersamaan dengan menggunakan operasi NOT dua kali. Walaupun operasi NOT pertama menyongsangkan bit, yang kedua hanya membalikkannya semula, menghasilkan nilai asal. Sebaliknya, memotong terus bahagian perpuluhan nombor itu.

Sebagai contoh, nombor -43.2, diwakili dalam perduaan 32-bit sebagai:

<code class="binary">11111111111111111111111111010101</code>

Selepas memohon ~~, ia menjadi:

<code class="binary">11111111111111111111111111010101</code>

yang diterjemahkan kembali kepada -43. Ini menunjukkan bahawa ~~ berkesan mengalih keluar bahagian pecahan nombor.

Nota Awas

Walaupun ~~ boleh berguna untuk menukar hujah rentetan kepada nombor, risiko limpahannya dan ketidaktepatan yang wujud untuk bukan integer menjadikannya pilihan yang berisiko. Pertimbangkan untuk menggunakan kaedah yang lebih mudah seperti x atau Number(x).

Kesimpulannya, ~~ ialah operator menarik yang memotong nilai perpuluhan daripada nombor atau rentetan. Dengan memahami tingkah laku dan batasan uniknya, anda boleh memanfaatkan kuasanya secara bertanggungjawab dalam pengembaraan JavaScript anda.

Atas ialah kandungan terperinci ## Apakah yang Sebenarnya Dilakukan Operator ~~ (Double Tilde) dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn