如果您阅读jQuery inArrayhere页的 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

我不明白这里铺瓷砖的目的.有人能给我解释一下或者给我指一个资源吗?

推荐答案

The tilde operator isn't actually part of jQuery at all - it's a bitwise NOT operator in JavaScript itself.

100.

You are getting strange numbers in your experiments because you are performing a bitwise logical operation on an integer (which, for all I know, may be stored as two's complement or something like that...)

100解释了如何用二进制表示一个数字.我想我是对的.

Jquery相关问答推荐

如何在Jquery和Laravel中使用请求传递两个参数给Datatable

使用 JQuery 在 span 标签中用逗号分隔页面上的文本

使用淡入淡出和追加

如何在 jquery 中从这个日期减go 一周?

如果 iframe src 无法加载,则捕获错误.错误:-拒绝在框架中显示 'http://www.google.co.in/'..

在 jQuery UI 自动完成上没有检测到结果

Jquery:如何判断元素是否具有某些 css 类/样式

Rails 无法正确解码来自 jQuery 的 JSON(数组变成带有整数键的散列)

jQuery Uncaught TypeError: 对象 [object Window] 的属性$不是函数

$(document).ready(function(){});页面底部的 vs 脚本

用作 Google Chrome 书签

jQuery ajax 成功回调函数定义

单击时平滑滚动到特定的 div

通过 javascript/jquery 删除/截断前导零

你如何记录jQuery中一个元素触发的所有事件?

在jQuery中获取列表元素内容的数组

.animate() 的回调被调用两次 jquery

JQuery 判断 DOM 中的重复 id

为什么我应该创建异步 WebAPI 操作而不是同步操作?

jquery在cookie中保存json数据对象