Rumah > Artikel > hujung hadapan web > Mengapa Operator Tilde Digunakan Sebelum Ungkapan dalam 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'
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)
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:
Alternatif kepada Operator Tilde
Untuk menguji kewujudan nilai dalam rentetan atau tatasusunan, JavaScript kini menyediakan kaedah khusus:
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!