javascript - 符号和数字文字的性能?

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

最佳答案

不,符号和数字一样是原始值,应该同样快速地进行比较。唯一的缺点可能是您必须使用变量而不是受信任的文字来引用它们,但是如果您的变量是 const 并且从未分配过,则优化编译器应该能够将符号值内联为好吧。

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

关于javascript - 符号和数字文字的性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50254808/

相关文章:

javascript - 如果需要,跳过验证

javascript - 使用工作流检查问题字段是否变为 "In Progress"时出现异常

javascript - 使用正则表达式获取第二个括号内容

javascript - 如何导入本地文本文件以使用 FileReader() 填充下拉列表

javascript - 是否可以在 Flow 中导入对象的推断类型?

javascript - 与 jQuery 相比,新的 oData javascript 库(来自 MSFT)

javascript - crypto模块中6个随机字节可以产生的最大值是多少?

javascript - backbone.js subview 未在初始渲染中显示

javascript - 添加绝对定位元素导致换行

javascript - 铁路由器与流路由器