在javascript中将“null”转换为null

Qua*_*cht 3 javascript local-storage sessionstorage

我使用会话存储来设置一个可以采用数值或null. 我注意到无论我输入什么,该字段都存储为字符串。有没有一种很好的方法可以将我的存储值转换回null

例如,我想检查我的代码,如下所示:

if (!sessionStorage.getItem('key')) {
   // do something
}
Run Code Online (Sandbox Code Playgroud)

进行该检查的最佳方法是什么?显而易见的方法是

 if (!sessionStorage.getItem('key') !== "null") {
       // do something
 }
Run Code Online (Sandbox Code Playgroud)

我想知道是否有替代方案。

kid*_*won 7

你可以解析它

JSON.parse('null') // null
JSON.parse('1')   //  1
Run Code Online (Sandbox Code Playgroud)

所以

var val = sessionStorage.getItem('key');
val = JSON.parse(val);
Run Code Online (Sandbox Code Playgroud)

接近演员表

替代方案是:

var val = sessionStorage.getItem('key');
val = val*1 || null;
Run Code Online (Sandbox Code Playgroud)


Sei*_*Sys 2

我只想要一些评估结果为 false 的东西

您可以使用空字符串来标记未设置的值:

sessionStorage.setItem('key','');
Run Code Online (Sandbox Code Playgroud)

这样您就可以重新使用当前的支票:

if (!sessionStorage.getItem('key')) {
   // do something
}
Run Code Online (Sandbox Code Playgroud)

也就是说,您提到您有一个下拉菜单来选择值,这就是您需要这样一个值的原因,但我认为涉及删除空值上的项目的解决方案会更好。这是一个工作演示,以及用于制作它的代码:

sessionStorage.setItem('key','');
Run Code Online (Sandbox Code Playgroud)
if (!sessionStorage.getItem('key')) {
   // do something
}
Run Code Online (Sandbox Code Playgroud)