2015-11-27 6 views
8

Kiedy przypisać wartość całkowitą do localStorage pozycjiCzy można przechowywać wartość całkowitą w localStorage, podobnie jak w obiektach Javascript i wyodrębnić ją bez typowania?

localStorage.setItem('a',1) 

i sprawdzić jej typ

typeof(localStorage.a) 
"string" 

zwraca ciąg, mogę typecast go int dla mojego użytku

parseInt(localStorage.a) 

Moje pytanie jest możliwe, aby zapisać wartość całkowitą insi de localStorage jak mogę zrobić dla obiektów JavaScript bez typowania?

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

LocalStorage może przechowywać tylko wartości ciągów. – Tholle

+0

To nie jest typowanie, to konwersja. JavaScript nie ma typowania (ponieważ JavaScript nie ma wpisanych zmiennych). –

Odpowiedz

9

Moje pytanie czy jest możliwe, aby zapisać wartość całkowitą wewnątrz localStorage jak mogę zrobić dla obiektów JavaScript bez rzutowania?

nr

obiekty magazynowe są proste przechowuje klucz-wartość, podobne do obiektów, ale pozostają one nienaruszone przez załadowaniu strony. Kluczami mogą być ciągi lub liczby całkowite, , ale wartością są zawsze ciągi znaków. [source]

+0

co oznacza, że ​​za każdym razem, gdy muszę wykonać typografię, wykonuję obliczenia matematyczne? – nickalchemist

+0

Yup (zakładając, że nie można wykonać obliczeń na samym ciągu, który prawdopodobnie nie może, a jeszcze bardziej nie powinien). –

2

Właściwie można, jeśli zgodzimy się, że podczas analizy nie jest taki sam jak rzutowania:

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

Fiddle ponieważ nadmiernie chronione stacksnippets nie pozwalają localStorage.

Dla uproszczenia powinieneś zawsze przypisać JSONowi to, co zapisujesz w localStorage, w ten sposób nie musisz myśleć o tym, co zapisujesz/odzyskujesz, a unikniesz zapisania "[object Object]".

Powiązane problemy