Localstorage&JSON.parse:如果没有值,JS停止工作?

jQu*_*ast 2 variables jquery json local-storage

对不起,如果标题是某种误解.如果我尝试使用json从localstorage解析值并且没有值,那么我在使用Web应用程序时遇到了一些问题.

例如:

如果你这样做:alert(localStorage.getItem("something"));你得到null:http://jsfiddle.net/yrGht/

但是如果你这样做就会阻止一切:alert(JSON.parse(localStorage["test"]));你什么也得不到,它会阻止一切工作:http://jsfiddle.net/7tCaS/

我如何解决这个问题,以便我提醒第一个,如果它没有值,那么继续工作,因为基本上我想设置它:JSON.parse(localStorage["test"])作为一个全局变量,但它阻止其他一切:http://jsfiddle.net/gq9Ea/

Nie*_*sol 6

试试这个:

alert(JSON.parse(localStorage['test'] || null));
Run Code Online (Sandbox Code Playgroud)

它失败的原因是因为JSON.parse(undefined_variable)给出了"无效字符"错误.如果localStorage['test']不存在,那就是undefined,所以它会出错.null如果值为falsy,则上面的代码就会到位undefined.但是,如果值为或另一个假值0,则会产生不良影响"".如果需要更具体的代码,请尝试:

alert(JSON.parse(typeof localStorage['test'] == "undefined" ? null : localStorage['test']));
Run Code Online (Sandbox Code Playgroud)