最佳答案
如果您阅读 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
我不明白这里的潮汐的目的。谁能给我解释一下,或者给我指个方向?