45

可能重复:
jQuery 对象前面的波浪号 (~) 有什么作用?

!!~我在阅读时发现代码中有一个奇怪的地方: https ://github.com/LearnBoost/mongoose/blob/master/lib/document.js#L678

Document.prototype.isModified = function (path) {
  return !!~this.modifiedPaths.indexOf(path);
};

我读过那是什么!!JavaScript 中的(不是不是)运算符?以及如何: ~ 运算符?; 为什么作者!!~在这里使用?

我试过了:

!!~1  // -> true
!!~0  // -> true
!!~-1 // -> false
!!~-2 // -> true

似乎只有false当数字是-1。这样对吗?为什么不只检查数字是不是-1>=0

4

0 回答 0