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

DDD
Lepaskan: 2024-10-25 11:39:02
asal
998 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!

sumber:php.cn
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