符号性能与数字文字?

时间:2018-05-09 13:37:31

标签: javascript

我一直在使用对象文字作为穷人的枚举,如下所示:

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,因为我觉得它比使用数字更具语义意义 - 在这种情况下,我并不关心“枚举”带有哪个值,我只想检查相等性 - 但是我有点担心这样做的性能考虑。如果我继续使用符号代替整数,我会给处理器带来更大的压力吗?

1 个答案:

答案 0 :(得分:3)

不,符号就像数字一样是原始值,应该同样快速地进行比较。唯一的缺点可能是您必须使用变量来引用它们而不是可信的文字,但如果您的变量是pandas.to_datetime并且从未分配过,那么优化编译器也应该能够内联符号值。 / p>

无论如何,你绝对应该使用语义更有意义的东西,并帮助你提高开发性能。执行速度是次要的,这里的差异可以忽略不计。