【问题标题】:JQuery: What does this code mean? [duplicate]JQuery:这段代码是什么意思? [复制]
【发布时间】:2014-01-05 02:14:12
【问题描述】:
(~$.inArray('orange', apple))

谁能解释一下上面的代码在jquery中是什么意思?

什么是~和.inArray?

【问题讨论】:

  • @Kevin,如果你问我,更像是炫耀和扼杀可读性。
  • @Kevin,这实际上是二进制补码的副作用:它将-1 映射到00-1 和正数到非零数。详情请见this answer
  • @FrédéricHamidi 我不确定将某些内容与 -1 进行比较是否比在评估表达式之前设置符号更具可读性。我的意思是您是否发现:if($.inArray('orange', apple) !== -1)if(~$.inArray('orange', apple)) 更具可读性,但这只是我的看法。

标签: javascript jquery


【解决方案1】:

它在 jQuery 中没有任何意义,因为它是 JavaScript。

~ 是一个操作符,它会做一些你通常认为没有任何目的的事情。它是一个一元运算符,它将右侧的表达式执行这个小算法(其中 N 是波浪号右侧的表达式):-(N+1)。请参阅下面的一些示例。

console.log(~-2); // 1
console.log(~-1); // 0
console.log(~0);  // -1
console.log(~1);  // -2
console.log(~2);  // -3

所以,除非你真的有一个应用程序需要在数字上运行这个算法

Source Taken from

数组

在数组中搜索指定值并返回其索引(如果未找到则返回 -1)。

因此,如果在(~$.inArray('orange', apple)) 上找不到元素,它将返回零,否则索引将按上述给定系列进行转换。

【讨论】:

    猜你喜欢
    • 2012-03-14
    • 2011-08-26
    • 1970-01-01
    • 2014-01-10
    • 2018-07-07
    • 1970-01-01
    • 2016-03-28
    相关资源
    最近更新 更多