相关疑难解决方法(0)

我应该使用空的属性键吗?

我只在Firefox中对此进行了测试,但显然您可以使用空字符串作为对象中属性的键.例如,请在此处查看第一个属性:

var countsByStatus = { 
  "": 23, //unknown status
  "started": 45,
  "draft": 3,
  "accepted": 23,
  "hold": 2345,
  "fixed": 2,
  "published": 345
}
Run Code Online (Sandbox Code Playgroud)

在浏览EcmaScript规范时,似乎(至少在5中),属性键被定义为字符串,字符串被定义为0或更多字符.这意味着根据规范,空字符串是有效的属性名称.

无论如何,我很想在一段代码中使用它,我在计算数据项状态的一些计数摘要(类似于我上面所示).有些项目可能没有状态,我需要一个占位符.由于状态是用户可定义的,我不想冒险使用可能冲突的虚拟词.

它看起来如此简单和优雅,在查看数据时我可以很容易地判断空字符串是什么意思.它还使代码更有效,因为空字符串将是没有状态的项目中状态的确切值.

但与此同时,我的直觉告诉我它出了问题.我的意思是,除了某些浏览器可能不支持这种情况的机会之外,我觉得我在JavaScript中遇到了一个将在某天修复的错误.但是,与此同时,我曾经对我现在每天使用的许多其他JavaScript功能产生了同样的感觉(例如我发现&&和||返回其中一个操作数的值的时间,而不仅仅是对或错).

javascript

63
推荐指数
2
解决办法
8909
查看次数

标签 统计

javascript ×1