var attr = ~'input,textarea'.indexOf( target.tagName.toLowerCase() )
? 'value'
: 'innerHTML'
Run Code Online (Sandbox Code Playgroud)
我在一个答案中看到了它,我以前从未见过它.
这是什么意思?
如果您在这里阅读jQuery inArray页面上的注释,那么有一个有趣的声明:
!!~jQuery.inArray(elm, arr)
Run Code Online (Sandbox Code Playgroud)
现在,我相信双感叹号会将结果转换为类型boolean,值为true.我不明白的是,~在所有这些中使用了tilde()运算符是什么?
var arr = ["one", "two", "three"];
if (jQuery.inArray("one", arr) > -1) { alert("Found"); }
Run Code Online (Sandbox Code Playgroud)
重构if声明:
if (!!~jQuery.inArray("one", arr)) { alert("Found"); }
Run Code Online (Sandbox Code Playgroud)
分解:
jQuery.inArray("one", arr) // 0
~jQuery.inArray("one", arr) // -1 (why?)
!~jQuery.inArray("one", arr) // false
!!~jQuery.inArray("one", arr) // true
Run Code Online (Sandbox Code Playgroud)
我也注意到,如果我把波浪号放在前面,结果是-2.
~!!~jQuery.inArray("one", arr) // -2
Run Code Online (Sandbox Code Playgroud)
我不明白这里代字号的目的.有人可以解释一下或指向我的资源吗?