Menyusun jawaban lain:
Obyek
var test = {};
Saat menggunakan angka sebagai kunci properti baru, angka tersebut berubah menjadi string:
test[2300] = 'Some string';
console.log(test['2300']);
// Output: 'Some string'
Saat mengakses nilai properti menggunakan nomor yang sama, nomor tersebut diubah menjadi string lagi:
console.log(test[2300]);
// Output: 'Some string'
Namun, ketika mendapatkan kunci dari objek, mereka tidak akan diubah kembali menjadi angka:
for (var key in test) {
console.log(typeof key);
}
// Output: 'string'
Peta
ECMAScript 6 memungkinkan penggunaan objek Peta ( dokumentasi , perbandingan dengan Objek ). Jika kode Anda dimaksudkan untuk diinterpretasikan secara lokal atau tabel kompatibilitas ECMAScript 6 tampak cukup hijau untuk tujuan Anda, pertimbangkan untuk menggunakan Peta:
var test = new Map();
test.set(2300, 'Some string');
console.log(test.get(2300));
// Output: 'Some string'
Tidak ada jenis konversi yang dilakukan, menjadi lebih baik dan lebih buruk:
console.log(test.get('2300'));
// Output: undefined
test.set('2300', 'Very different string');
console.log(test.get(2300));
// Output: 'Some string'