Если вы читаете комментарии на странице jQuery inArray
здесь , есть интересное объявление:
!!~jQuery.inArray(elm, arr)
Теперь, я думаю, двойной восклицательный знак преобразует результатнабрать boolean
со значением true
.Чего я не понимаю, так это как использовать оператор тильды (~
) во всем этом?
var arr = ["one", "two", "three"];
if (jQuery.inArray("one", arr) > -1) { alert("Found"); }
Рефакторинг оператора if
:
if (!!~jQuery.inArray("one", arr)) { alert("Found"); }
Разбивка:
jQuery.inArray("one", arr) // 0
~jQuery.inArray("one", arr) // -1 (why?)
!~jQuery.inArray("one", arr) // false
!!~jQuery.inArray("one", arr) // true
Я также заметил, что если я поставлю тильду впереди, результат будет -2
.
~!!~jQuery.inArray("one", arr) // -2
Я не понимаю цели тильды здесь.Может кто-нибудь объяснить это или указать мне на ресурс?