如果您阅读jQuery inArray
第here页的 comments ,有一个有趣的声明:
!!~jQuery.inArray(elm, arr)
现在,我相信一个双感叹号会将结果转换为类型boolean
,值为true
.我不明白的是tilde(~
)操作符在所有这些中的用途是什么?
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
I also noticed that if I put the tilde in front, the result is -2
.
~!!~jQuery.inArray("one", arr) // -2
我不明白这里铺瓷砖的目的.有人能给我解释一下或者给我指一个资源吗?