Rumah hujung hadapan web tutorial js Mengapa Operator Tilde Digunakan Sebelum Ungkapan dalam JavaScript?

Mengapa Operator Tilde Digunakan Sebelum Ungkapan dalam JavaScript?

Nov 24, 2024 pm 06:35 PM

Why is the Tilde Operator Used Before an Expression in JavaScript?

Kepentingan Operator Tilde dalam Ungkapan Sebelumnya

Pengendali tilde (~) ialah operator bitwise dalam JavaScript yang menterbalikkan semua bit masuk operannya. Operator ini jarang digunakan sebelum penilaian ungkapan, menimbulkan persoalan tentang tujuan dan maksudnya.

Mari kita pertimbangkan contoh kod berikut:

var attr = ~'input,textarea'.indexOf( target.tagName.toLowerCase() )
           ? 'value'
           : 'innerHTML'
Salin selepas log masuk

Dalam kod ini, operator tilde digunakan sebelum fungsi indexOf(). Fungsi indexOf() mengembalikan indeks kejadian pertama rentetan sasaran dalam rentetan. Jika rentetan sasaran tidak ditemui, ia mengembalikan -1.

Kesan Operator Tilde

Pengendali tilde menukar nilai pulangan indexOf() kepada 32 -bit integer dan membalikkan semua bitnya. Sebagai contoh, jika indexOf() mengembalikan -1 (menunjukkan bahawa rentetan sasaran tidak ditemui), pengendali tilde akan menyelak semua bit perwakilan binarinya:

0000 0000 0000 0000 0000 0000 0000 0001 (original)
=>
1111 1111 1111 1111 1111 1111 1111 1110 (inverted)
Salin selepas log masuk

Hasilnya ialah nombor positif yang dianggap sebagai kebenaran dalam JavaScript. Oleh itu, ungkapan ~'input,textarea'.indexOf(target.tagName.toLowerCase()) menilai kepada benar jika rentetan sasaran tidak ditemui dan kepada palsu jika ditemui.

Gunakan Kes untuk Operator Tilde

Walaupun jarang berlaku, operator tilde mempunyai pelbagai kegunaan, termasuk:

  • Pengaturcaraan peringkat rendah: Ia boleh memanipulasi bit secara langsung.
  • Pengoptimuman prestasi: Ia boleh digunakan dalam helah bitwise untuk meningkatkan prestasi dalam situasi tertentu.
  • Benar/Falsy Penghantaran: Ia boleh digunakan sebagai helah untuk menukar nilai pulangan indexOf() kepada nilai kebenaran untuk kes yang tidak ditemui.
  • Pemotongan Nombor: Ia boleh disalahgunakan untuk memotong nombor kepada 32 bit, dengan berkesan melaksanakan Math.floor() untuk positif nombor.

Alternatif kepada Operator Tilde

Untuk menguji kewujudan nilai dalam rentetan atau tatasusunan, JavaScript kini menyediakan kaedah khusus:

  • Array.prototype.includes() untuk tatasusunan
  • String.prototype.includes() untuk rentetan

Kaedah ini mengembalikan nilai boolean secara langsung, menjadikannya alternatif yang lebih jelas dan cekap kepada tilde pengendali.

Kesimpulan

The pengendali tilde, apabila mendahului ungkapan, menukar nilai ungkapan kepada perwakilan bitwise dan membalikkan semua bitnya. Ia mempunyai beberapa kegunaan yang tidak jelas tetapi secara amnya tidak digalakkan kerana kekurangan kejelasan dan perkaitan yang berkurangan berbanding dengan kaedah yang lebih moden seperti Array.prototype.includes() dan String.prototype.includes().

Atas ialah kandungan terperinci Mengapa Operator Tilde Digunakan Sebelum Ungkapan 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

Alat panas Tag

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Ganti aksara rentetan dalam javascript Ganti aksara rentetan dalam javascript Mar 11, 2025 am 12:07 AM

Ganti aksara rentetan dalam javascript

periksa jQuery jika tarikh sah periksa jQuery jika tarikh sah Mar 01, 2025 am 08:51 AM

periksa jQuery jika tarikh sah

jQuery mendapatkan padding/margin elemen jQuery mendapatkan padding/margin elemen Mar 01, 2025 am 08:53 AM

jQuery mendapatkan padding/margin elemen

Plugin JS Manipulasi 5 Tarikh Teratas Plugin JS Manipulasi 5 Tarikh Teratas Feb 28, 2025 am 12:34 AM

Plugin JS Manipulasi 5 Tarikh Teratas

10 patut diperiksa plugin jQuery 10 patut diperiksa plugin jQuery Mar 01, 2025 am 01:29 AM

10 patut diperiksa plugin jQuery

10 Tab Accordion JQuery 10 Tab Accordion JQuery Mar 01, 2025 am 01:34 AM

10 Tab Accordion JQuery

jQuery tambah bar scroll ke div jQuery tambah bar scroll ke div Mar 01, 2025 am 01:30 AM

jQuery tambah bar scroll ke div

Tutorial Persediaan API Carian Google Custom Tutorial Persediaan API Carian Google Custom Mar 04, 2025 am 01:06 AM

Tutorial Persediaan API Carian Google Custom

See all articles