## Apakah yang ~~ Operator Lakukan dalam JavaScript?

Barbara Streisand
Lepaskan: 2024-10-25 12:55:03
asal
562 orang telah melayarinya

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

Mentafsir ~~ Operator dalam JavaScript

Semasa mendalami perpustakaan fizik permainan, anda mungkin telah menemui operator ~~ yang membingungkan. Persamaannya dengan operator ~ (bitwise NOT) menggesa anda untuk mempersoalkan fungsinya. Adakah ia hanya penafian berganda, mengembalikan nilai yang sama?

Anehnya, pengendali ~~ sebenarnya melangkaui asal-usulnya BUKAN secara bitwise. Ia mempunyai tujuan unik dalam JavaScript: menghapuskan segala-galanya selepas titik perpuluhan.

Menaakulan Di Sebalik Penyingkiran Titik Perpuluhan

Tingkah laku ini berpunca daripada penukaran tersirat operan kepada 32 yang ditandatangani -bit integer sebelum operasi bitwise dilakukan. Akibatnya, pengendali ~~ berkelakuan seperti berikut:

function(x) {
  if(x < 0) return Math.ceil(x);
  else return Math.floor(x);
}
Salin selepas log masuk

Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa penukaran ini hanya terpakai apabila nilai input (x) berada dalam julat -(2^31) hingga 2^31 - 1. Melebihi sempadan ini mengakibatkan limpahan data, yang berpotensi membawa kepada tingkah laku yang tidak dijangka.

Kelebihan dan Kelemahan Penggunaan ~~

Walaupun keupayaannya untuk menukar rentetan kepada nombor, penggunaan ~~ harus didekati dengan berhati-hati kerana kecenderungannya untuk melimpah. Selain itu, tujuan yang dimaksudkan tidak sejajar sepenuhnya dengan penukaran berangka. Sebaliknya, x atau Number(x) menawarkan pilihan yang lebih dipercayai dan intuitif.

Bitwise NOT Logic

Untuk memahami sebab ~~ bertindak sebagai penolakan berganda untuk 32-bit integer, mari kita pertimbangkan contoh -43.2:

  • -43.2 dalam binari: 11111111111111111111111111010101
  • Integer, menghasilkan 0000000000000000000000000101010
  • Penolakan Berganda: Terbalikkan semua bit sekali lagi, memulihkan perwakilan binari asal: 1111111111111111111111111111111 🎜>Penukaran Perpuluhan:
  • -43.0
  • Penolakan berganda ini dengan berkesan "menterbalikkan" data kepada keadaan awalnya sebelum pemotongan perpuluhan.

Atas ialah kandungan terperinci ## Apakah yang ~~ Operator Lakukan 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!