Lorsque j'attribue une valeur entière à l'élément localStorage
localStorage.setItem('a',1)
et vérifier son type
typeof(localStorage.a)
"string"
il retourne chaîne, je peux le transtyper en int pour mon usage
parseInt(localStorage.a)
Ma question est-il possible de stocker une valeur entière dans localStorage comme je peux le faire pour les objets Javascript sans transtypage?
a={};
a.number=1;
typeof(a.number)
"number"
Ma question est-il possible de stocker une valeur entière dans localStorage comme je peux le faire pour les objets Javascript sans transtypage?
Non.
Les objets de stockage sont de simples magasins de valeurs-clés, similaires aux objets, mais ils restent intacts pendant le chargement des pages. Les clés peuvent être des chaînes ou des entiers, mais les valeurs sont toujours des chaînes . [source]
En fait, vous pouvez, si nous convenons que l'analyse n'est pas la même chose que le transtypage:
let val = 42;
localStorage.answer = JSON.stringify(val);
let saved = JSON.parse(localStorage.answer);
console.log( saved === val ); // true
Fiddle puisque les stacksnippets sur-protégés n'autorisent pas localStorage.
Par souci de simplicité, vous devez de toute façon toujours stringifier en JSON ce que vous enregistrez dans localStorage, de cette façon vous n'avez pas à penser à ce que vous enregistrez/récupérez, et vous éviterez "[object Object]"
en cours de sauvegarde.