我一直在使用对象字面量作为穷人的枚举,像这样:
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
是因为我认为它比使用数字更具有语义意义——在这种情况下,我并不真正关心“枚举”携带的是哪个值,我只是想检查是否相等- 但我有点担心这样做的性能考虑。如果我继续使用符号代替整数,我是否会给处理器带来更大的压力?
最佳答案
不,符号和数字一样是原始值,应该同样快速地进行比较。唯一的缺点可能是您必须使用变量而不是受信任的文字来引用它们,但是如果您的变量是 const
并且从未分配过,则优化编译器应该能够将符号值内联为好吧。
无论如何,你绝对应该使用语义上更有意义的东西,并帮助你提高开发性能。执行速度是次要的,这里的差异可以忽略不计。
关于javascript - 符号和数字文字的性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50254808/