Возможный дубликат:
Что означает тильда (~ ) предыдущий объект 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
?