如何检查是否不使用 Javascript 按位运算符?

How to check if NOT using Javascript bitwise operators?

我有一个功能可以通过检查用户的标志来检查用户是否是高级用户:

isUserPremium() {
  return this.flags & Flags.PREMIUM; // returns true
}

现在假设我想要另一个功能,但这次是检查用户是否空闲,但使用相同的标志。我尝试取反返回值,但我想知道是否有更好的方法来做到这一点。

isUserFree() {
  return !(this.flags & Flags.PREMIUM); // returns false
}

没有办法检查标志是否不是由单个运算符设置的。我建议稍后在代码中使用 !isUserPremium() 而不是 isUserFree() - 不要创建反转从另一个函数返回的值的函数。但是,请确保您不依赖此来确保安全。在浏览器中执行的所有内容都可以轻松操纵。