【问题标题】:Should I use strings or constant integers to map properties? Does it make a difference?我应该使用字符串还是常量整数来映射属性?这有什么不同吗?
【发布时间】:2017-07-05 03:40:55
【问题描述】:

字符串映射属性示例:

var OPACITY = {
 "visible" : 10,
 "hidden : 0.1
}

将如何使用它:

window.opacity = OPACITY["visible"]

使用常量整数的示例:

const VISIBLE = 0
const HIDDEN = 1
var OPACITY = [10, 0.1];

将如何使用它:

window.opacity = OPACITY[VISIBLE]

所以我有两个问题,哪个是更标准的做法,它对性能或可靠性有影响吗?

【问题讨论】:

  • 无论如何,数组索引总是被视为字符串。您的问题的答案是,它根本没有显着差异。
  • 你能举个例子说明你是如何使用这些的吗?
  • @Pointy 认真的吗?参考?
  • @Mercado 所有对象属性名称都是字符串。数组是对象。
  • 好的,但是数组索引比显式字符串短。 js 引擎是否以某种方式预处理/缓存/无论这些映射,以便它不需要再次重新计算字符串键的哈希来获取其值?

标签: javascript performance coding-style


【解决方案1】:

如果您使用常量整数,您将永远不必担心必须确保将值转换为整数才能使其正常工作。

至于性能?如果您的应用加载得如此之快,会影响性能,那么您的问题就会大得多。

【讨论】:

  • 这绝对没关系,因为对象属性名称(包括数组索引)总是字符串。
  • 嗯,我不认为仅仅因为整数被视为字符串就不会造成性能问题。我很确定 Array 在索引方面仍然可以表现得更好。在这一点上,我只是好奇并决定使用我使用字符串的第一个示例。
猜你喜欢
  • 1970-01-01
  • 2013-06-19
  • 1970-01-01
  • 1970-01-01
  • 2012-10-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-08
  • 1970-01-01
相关资源
最近更新 更多