Compilare altre risposte:
Oggetto
var test = {};
Quando si utilizza un numero come chiave di una nuova proprietà, il numero si trasforma in una stringa:
test[2300] = 'Some string';
console.log(test['2300']);
// Output: 'Some string'
Quando si accede al valore della proprietà utilizzando lo stesso numero, il numero viene nuovamente trasformato in una stringa:
console.log(test[2300]);
// Output: 'Some string'
Quando si ottengono le chiavi dall'oggetto, tuttavia, non verranno trasformate di nuovo in numeri:
for (var key in test) {
console.log(typeof key);
}
// Output: 'string'
Carta geografica
ECMAScript 6 consente l'utilizzo dell'oggetto Map ( documentazione , confronto con Object ). Se il tuo codice deve essere interpretato localmente o la tabella di compatibilità ECMAScript 6 sembra abbastanza verde per i tuoi scopi, considera l'utilizzo di una mappa:
var test = new Map();
test.set(2300, 'Some string');
console.log(test.get(2300));
// Output: 'Some string'
Non viene eseguita alcuna conversione di tipo, nel bene e nel male:
console.log(test.get('2300'));
// Output: undefined
test.set('2300', 'Very different string');
console.log(test.get(2300));
// Output: 'Some string'