title: Should I use an empty property key?
body: <p>I've tested this only in Firefox, but apparently you can use an empty string as a key to a property in an object. For example, see the first property here:</p>
  
  <pre><code>var countsByStatus = { 
    "": 23, //unknown status
    "started": 45,
    "draft": 3,
    "accepted": 23,
    "hold": 2345,
    "fixed": 2,
    "published": 345
  }
  </code></pre>
  
  <p>In skimming through the EcmaScript specs, it appears that (at least in 5), property keys are defined as strings, and strings as 0 or more characters. This implies that an empty string is a valid property name according to the specs.</p>
  
  <p>Anyway, I'm tempted to use this in a section of code where I'm calculating summaries of some counts by the status of a data item (similar to what I've shown above). There are some items which might not have a status, and I need a placeholder for those. Since statuses are user-definable, I don't want to risk using a dummy word that might conflict.</p>
  
  <p>It seems so simple and elegant, in looking at the data I can easily tell what the blank string would mean. It also makes the code a little bit more efficient, since the empty string would be the exact value of the status in the items without a status. </p>
  
  <p>But at the same time, my instincts are telling me that something is wrong with it. I mean, apart from the chance that some browser might not support this, I feel like I've encountered a bug in JavaScript that will be fixed some day. But, at the same time, that's the same feeling I once had about a lot of other JavaScript features that I now use every day (such as the time I discovered that &amp;&amp; and || returns the value of one of the operands, not just true or false).</p>