我想检查我的枚举值中是否设置了标志。 我的代码出了什么问题?
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");
}
答案 0 :(得分:2)
首先你的值应该是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");
}