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