J'ai testé cela uniquement dans Firefox, mais il semble que vous puissiez utiliser une chaîne vide comme clé pour une propriété dans un objet. Par exemple, voyez la première propriété ici :
var countsByStatus = {
"": 23, //statut inconnu
"started": 45,
"draft": 3,
"accepted": 23,
"hold": 2345,
"fixed": 2,
"published": 345
}
En parcourant les spécifications EcmaScript, il apparaît que (au moins dans la version 5), les clés des propriétés sont définies comme des chaînes, et les chaînes comme 0 caractère ou plus. Cela implique qu'une chaîne vide est un nom de propriété valide selon les spécifications.
Quoi qu'il en soit, je suis tenté d'utiliser cela dans une section de code où je calcule des résumés de certains comptages par le statut d'un élément de données (similaire à ce que j'ai montré ci-dessus). Il y a des éléments qui pourraient ne pas avoir de statut, et j'ai besoin d'un espace réservé pour ceux-ci. Comme les statuts sont définis par l'utilisateur, je ne veux pas risquer d'utiliser un mot factice qui pourrait entrer en conflit.
Cela semble si simple et élégant, en regardant les données, je peux facilement comprendre ce que la chaîne vide signifierait. Cela rend également le code un peu plus efficace, car la chaîne vide serait la valeur exacte du statut dans les éléments sans statut.
Mais en même temps, mes instincts me disent qu'il y a quelque chose qui cloche. Je veux dire, en dehors de la possibilité qu'un navigateur ne prenne pas en charge cela, j'ai l'impression d'avoir rencontré un bug dans JavaScript qui sera corrigé un jour. Mais, en même temps, c'est le même sentiment que j'avais autrefois concernant de nombreuses autres fonctionnalités de JavaScript que j'utilise maintenant tous les jours (comme ce jour où j'ai découvert que && et || renvoient la valeur de l'un des opérandes, pas seulement vrai ou faux).