JavaScript: Enum标志检查

JavaScript: Enum Flag check

本文关键字:检查 标志 Enum JavaScript      更新时间:2023-09-26

我想检查是否在枚举值中设置了标志。我的代码有什么问题?

javascript代码

var flags = {
  FOO: 1,
  BAR: 2,
  BAZ: 4,
  FUM: 8,
  ERROR: 65
}
var value = flags.FOO | flags.BAR;
if (value & flags.ERROR){
   alert("ERROR IS SET, but this is not true");
}

首先你的值应该是n^2:

var flags = {
  UNKNOWN: 0, 
  FOO: 1,
  BAR: 2,
  BAZ: 4,
  FUM: 8,
  ERROR: 16
}

那么你的语句应该是:

if ((value & flags.ERROR) == flags.ERROR){
   alert("ERROR IS SET");
}