!!~
我在阅读时发现代码中有一个奇怪的地方: 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
?