Я тестировал это только в Firefox, но, видимо, вы можете использовать пустую строку как ключ к свойству в объекте. Например, см. Первое свойство здесь:
var countsByStatus = {
"": 23, //unknown status
"started": 45,
"draft": 3,
"accepted": 23,
"hold": 2345,
"fixed": 2,
"published": 345
}
При просмотре спецификаций EcmaScript появляется (по крайней мере, в 5), ключи свойств определяются как строки, а строки - 0 или более символов. Это означает, что пустая строка является допустимым именем свойства в соответствии со спецификациями.
В любом случае, у меня возникает соблазн использовать это в разделе кода, где я вычисляю резюме некоторых значений по статусу элемента данных (аналогично тому, что я показал выше). Есть некоторые элементы, которые могут не иметь статуса, и мне нужен заполнитель для них. Поскольку статусы определяются пользователем, я не хочу рисковать использованием фиктивного слова, которое может конфликтовать.
Кажется, так просто и элегантно, глядя на данные, я могу легко сказать, что означала бы пустая строка. Это также делает код немного более эффективным, поскольку пустая строка будет точным значением статуса в элементах без статуса.
Но в то же время мои инстинкты говорят мне, что с этим что-то не так. Я имею в виду, кроме того, что некоторые браузеры могут не поддерживать это, я чувствую, что столкнулся с ошибкой в JavaScript, которая будет исправлена однажды. Но, в то же время, такое же чувство, что у меня когда-то было много других функций JavaScript, которые я сейчас использую каждый день (например, когда я обнаружил, что && и || возвращает значение одного из операндов, а не только true или false).