Jeśli czytasz komentarze na jQuery inArray
stronie tutaj , jest interesująca deklaracja:
!!~jQuery.inArray(elm, arr)
Teraz uważam, że podwójny wykrzyknik przekonwertuje wynik na typ boolean
o wartości true
. Nie rozumiem, jakie jest zastosowanie w tym ~
wszystkim operatora tyldy ( )?
var arr = ["one", "two", "three"];
if (jQuery.inArray("one", arr) > -1) { alert("Found"); }
Refaktoryzacja if
instrukcji:
if (!!~jQuery.inArray("one", arr)) { alert("Found"); }
Awaria:
jQuery.inArray("one", arr) // 0
~jQuery.inArray("one", arr) // -1 (why?)
!~jQuery.inArray("one", arr) // false
!!~jQuery.inArray("one", arr) // true
Zauważyłem również, że jeśli umieszczę tyldę z przodu, wynik jest -2
.
~!!~jQuery.inArray("one", arr) // -2
Nie rozumiem tutaj celu tyldy. Czy ktoś może to wyjaśnić lub wskazać mi źródło informacji?