2015-11-27 2 views
8

Wenn ich Integer-Wert zu local Artikel zuordnenIst es möglich, Integer-Wert in localStorage wie in Javascript-Objekten zu speichern und ohne Typumwandlung zu extrahieren?

localStorage.setItem('a',1) 

und überprüfen Sie die Art

typeof(localStorage.a) 
"string" 

es String zurückkehrt, ich es int für meine Verwendung

parseInt(localStorage.a) 
typisieren können

Meine Frage ist es möglich, Integer-Wert insi zu speichern de localStorage wie kann ich für Javascript-Objekte ohne Typumwandlung tun?

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

LocalStorage kann nur Zeichenfolgenwerte speichern. – Tholle

+0

Das ist keine Typumwandlung, das ist Umwandlung. JavaScript hat keine Typumwandlung (da JavaScript keine typisierten Variablen enthält). –

Antwort

9

Meine Frage ist es möglich, innerhalb local Integer-Wert zu speichern, wie ich für Javascript-Objekte ohne Schublade gesteckt tun?

Nr

Speicherobjekte sind einfache Schlüssel-Wert speichert, ähnlich wie Objekte, aber sie bleiben intakt durch Seite geladen wird. Die Schlüssel können Zeichenfolgen oder Ganzzahlen sein, , aber die Werte sind immer Zeichenfolgen. [source]

+0

was bedeutet jedes Mal, ich muss es tippen, um mathematische Berechnungen zu tun? – nickalchemist

+0

Yup (vorausgesetzt, Sie können die Berechnung für die Zeichenfolge nicht tun, die Sie wahrscheinlich nicht können und noch wahrscheinlicher nicht). –

2

Eigentlich kann man, wenn man sich einig, dass das Parsen nicht das gleiche wie eine Schublade gesteckt ist:

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

Fiddle seit über geschützte stacksnippets nicht zulassen local.

Der Einfachheit halber sollten Sie sowieso immer zu JSON stringieren, was Sie in localStorage speichern, auf diese Weise müssen Sie nicht darüber nachdenken, was Sie speichern/abrufen, und Sie vermeiden "[object Object]" gespeichert werden.