Jika Anda membaca komentar di inArray
halaman jQuery di sini , ada deklarasi yang menarik:
!!~jQuery.inArray(elm, arr)
Sekarang, saya yakin tanda seru ganda akan mengubah hasil menjadi tipe boolean
, dengan nilai true
. Yang tidak saya mengerti adalah apa gunanya ~
operator tilde ( ) dalam semua ini?
var arr = ["one", "two", "three"];
if (jQuery.inArray("one", arr) > -1) { alert("Found"); }
Refactoring if
pernyataan:
if (!!~jQuery.inArray("one", arr)) { alert("Found"); }
Kerusakan:
jQuery.inArray("one", arr) // 0
~jQuery.inArray("one", arr) // -1 (why?)
!~jQuery.inArray("one", arr) // false
!!~jQuery.inArray("one", arr) // true
Saya juga memperhatikan bahwa jika saya meletakkan tilde di depan, hasilnya adalah -2
.
~!!~jQuery.inArray("one", arr) // -2
Saya tidak mengerti tujuan tilde di sini. Bisakah seseorang menjelaskan atau mengarahkan saya ke sumber daya?