如果您阅读 jQuery 上的评论inArray
page here http://api.jquery.com/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
我不明白这里波浪号的目的。有人可以解释一下或向我指出资源吗?