HTML5本地存储和变量类型

4 variables html5 types

我正在为HTML5中的本地存储进行一些测试.注意我使用的是Safari 6.0.2,因为似乎很多Web引擎处理它们的方法不同.

如果我这样做:

localStorage.setItem('subTotal', Number(12345)); // I know, it's redundant :)
var varType = typeof localStorage.getItem('subTotal');

alert(varType);
Run Code Online (Sandbox Code Playgroud)

你现在想; 这是一个数字!但不,它不是..即使使用类型转换,HTML5本地存储似乎在插入时将所有变量类型转换为字符串.这很有趣,因为在使用开发工具时,它会在引号之间显示字符串值,但不显示数字.也许是Inspector窗格剥离了引号.

我已经在jQuery中有一个旧的自动typeCasting函数,但我总是厌倦这些情况,因为0和false,仍然可以弄乱一些东西.

任何人都知道localStorage.*Library是否有设置来维护变量类型?

Jos*_*ber 12

您应该首先将它们转换为JSON:

localStorage.setItem( 'subTotal', JSON.stringify(12345) );
Run Code Online (Sandbox Code Playgroud)

然后,在检索项目时,解析JSON:

JSON.parse( localStorage.getItem('subTotal') );
Run Code Online (Sandbox Code Playgroud)

这是小提琴:http://jsfiddle.net/hD9dF/


为了便于使用,请创建自己的包装器:

var myLocalStorage = {
    set: function (item, value) {
        localStorage.setItem( item, JSON.stringify(value) );
    },
    get: function (item) {
        return JSON.parse( localStorage.getItem(item) );
    }
};
Run Code Online (Sandbox Code Playgroud)

这是小提琴:http://jsfiddle.net/hD9dF/1/