我一直在使用对象文字作为穷人的枚举,如下所示:
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!") }
Run Code Online (Sandbox Code Playgroud)
我使用Symbol是因为我认为它比使用数字更具有语义意义——在这种情况下,我并不真正关心“枚举”携带的值,我只想检查相等性——但我有点担心这样做的性能考虑就这样。如果我继续使用符号代替整数,我是否会给处理器带来更大的压力?
不,符号就像数字一样是原始值,应该同样快速地进行比较。唯一的缺点可能是您必须使用变量来引用它们而不是受信任的文字,但是如果您的变量被const分配并且从未被分配,优化编译器也应该能够内联符号值。
无论如何,您绝对应该使用语义上更有意义的内容,并帮助您提高开发性能。执行速度是次要的,这里的差异可以忽略不计。
| 归档时间: |
|
| 查看次数: |
524 次 |
| 最近记录: |