我一直在使用对象文字作为穷人的枚举,如下所示:
let enum = {
option1: Symbol("o1"),
option2: Symbol("o2"),
option3: Symbol("o3")
};
let item = enum.option2;
if(item === enum.option2) { console.log("Item is Option 2!") }
我使用Symbol
,因为我觉得它比使用数字更具语义意义 - 在这种情况下,我并不关心“枚举”带有哪个值,我只想检查相等性 - 但是我有点担心这样做的性能考虑。如果我继续使用符号代替整数,我会给处理器带来更大的压力吗?
答案 0 :(得分:3)
不,符号就像数字一样是原始值,应该同样快速地进行比较。唯一的缺点可能是您必须使用变量来引用它们而不是可信的文字,但如果您的变量是pandas.to_datetime
并且从未分配过,那么优化编译器也应该能够内联符号值。 / p>
无论如何,你绝对应该使用语义更有意义的东西,并帮助你提高开发性能。执行速度是次要的,这里的差异可以忽略不计。