2015-11-27 17 views
8

Quando ho assegnare valore intero a localStorage voceÈ possibile memorizzare il valore intero in localStorage come negli oggetti Javascript ed estrarlo senza typecasting?

localStorage.setItem('a',1) 

e controllare il suo tipo

typeof(localStorage.a) 
"string" 

restituisce stringa, posso typecast a int per il mio uso

parseInt(localStorage.a) 

La mia domanda è possibile memorizzare il valore intero insi de localStorage come posso fare per gli oggetti Javascript senza typecasting?

a={}; 
a.number=1; 
typeof(a.number) 
"number" 
+0

LocalStorage può memorizzare solo valori stringa. – Tholle

+0

Questo non è typecasting, è la conversione. JavaScript non ha typecasting (dal momento che JavaScript non ha variabili tipizzate). –

risposta

9

La mia domanda è possibile memorizzare valore intero all'interno localStorage come posso fare per oggetti JavaScript senza typecasting?

No.

oggetti di stoccaggio sono semplici negozi chiave-valore, simili a oggetti, ma rimangono intatti attraverso caricamento della pagina. I tasti possono essere stringhe o numeri interi, ma i valori sono sempre stringhe. [source]

+0

che significa ogni volta che ho bisogno di typecast per fare calcoli matematici? – nickalchemist

+0

Sì (supponendo che non sia possibile eseguire il calcolo sulla stringa stessa, cosa che probabilmente non è possibile, e anche più probabilmente non dovrebbe). –

2

In realtà si può, se siamo d'accordo che l'analisi non è lo stesso di fusione di caratteri:

let val = 42; 
localStorage.answer = JSON.stringify(val); 
let saved = JSON.parse(localStorage.answer); 
console.log(saved === val); // true 

Fiddle dal stacksnippets over-protetti non consentono localStorage.

Per semplicità, si dovrebbe comunque sempre stringa i JSON per quello che si sta salvando in localStorage, in questo modo non c'è bisogno di pensare a quello che si sta salvando/recupero, e si eviterà "[object Object]" essere salvati.

Problemi correlati