Rumah > hujung hadapan web > tutorial js > Apakah yang dilakukan oleh Operator Double Tilde (~~) dalam JavaScript?

Apakah yang dilakukan oleh Operator Double Tilde (~~) dalam JavaScript?

DDD
Lepaskan: 2024-10-25 11:39:02
asal
1071 orang telah melayarinya

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

Double Tilde Operator: Penyelaman Lebih Dalam ke ~~

Dalam JavaScript, anda mungkin menemui operator ~~, juga dikenali sebagai " pengendali double tilde". Walaupun tilde tunggal ~ mewakili bitwise NOT, anda mungkin tertanya-tanya apakah peranan yang dimainkan tilde berganda.

Bertentangan dengan gerak hati, ~~ tidak melakukan operasi NOT daripada NOT. Sebaliknya, ia secara tersirat menukar operannya kepada integer 32-bit dan mengalih keluar segala-galanya selepas titik perpuluhan. Tingkah laku ini digunakan pada kedua-dua nombor dan rentetan.

Secara teknikal, ~~ berkelakuan seperti fungsi berikut:

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

Walau bagaimanapun, ia hanya memberikan hasil yang tepat apabila operan x berada dalam julat -(2^31) hingga 2^31 - 1. Melangkaui julat ini, limpahan berlaku, yang membawa kepada "membalut" nombor.

Ia mungkin kelihatan menggoda untuk digunakan ~~ untuk penghuraian berangka argumen rentetan , tetapi ini tidak digalakkan. Limpahan dan ketidaktepatan untuk bukan integer menjadikannya pilihan yang buruk. Lebih suka x atau Nombor(x).

Memahami Double Tilde sebagai BUKAN daripada NOT

Untuk memahami cara ~~ melaksanakan operasi NOT daripada NOT dengan berkesan, pertimbangkan contoh berikut:

Nombor -43.2 diwakili sebagai nombor binari 32-bit yang ditandatangani:

-43.2 = 11111111111111111111111111010101 (2)
Salin selepas log masuk

Memohon bitwise NOT:

NOT -43.2 = 00000000000000000000000000101010 (2) = 42
Salin selepas log masuk

Aplikasi kedua bitwise NOT:

NOT 42 = 11111111111111111111111111010101 (2) = -43
Salin selepas log masuk

Perhatikan bahawa operator ~~ menghasilkan hasil yang sama seperti dua operasi NOT bitwise berturut-turut, walaupun ia tidak melakukan operasi NOT daripada NOT dengan cara yang mudah.

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

Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan