Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从localStorage获取时如何检查空/未定义的字符串值_Javascript_Local Storage - Fatal编程技术网

Javascript 从localStorage获取时如何检查空/未定义的字符串值

Javascript 从localStorage获取时如何检查空/未定义的字符串值,javascript,local-storage,Javascript,Local Storage,我有这样的用例: const language = "en"/"jp"/null/undefined; // Here is my language value that I get from server // It could be "en", "jp" , null or undefined // I set language value into localStorage localStorage.setItem("language", language) // Somewher

我有这样的用例:

const language = "en"/"jp"/null/undefined; 
// Here is my language value that I get from server
// It could be "en", "jp" , null or undefined


// I set language value into localStorage
localStorage.setItem("language", language)

// Somewhere I get language from localStorage
localStorage.getItem("language");
我的问题是,当我从localStorage获取
语言
时,其值为
null
未定义
。我收到的结果是一个字符串(
“null”
“undefined”

在当前代码中,我的检查手册如下:

const getLanguage = localStorage.getItem("language");
const defalutLanguage = "en";
const currentLanguage = ( getLanguage && getLanguage !== "null" 
      && getLanguage !== "undefined" ) ? getLanguage : defalutLanguage
但是,我知道这是一种不好的方式。那么,有什么方法可以快速检查我的案例吗?

感谢您的帮助

请使用JSON解析器

const language = "en"/"jp"/null/undefined; 
localStorage.setItem("language", JSON.stringify({ language }) );

const getLanguage = JSON.parse(localStorage.getItem("language")).language;
const defalutLanguage = "en";
const currentLanguage = getLanguage ? getLanguage : defalutLanguage;

<代码>本地存储。GestITEM <代码>将永远不会返回<代码>未定义。任何方式看起来都是合理的,但是除非您需要区分空和未定义,否则请考虑用空字符串调用<代码> SETITEM < /代码>,当<代码>语言< /代码>获得FalSy时。更容易避免输入您将忽略的数据later@Bravo存储在localStorage中的字符串在这里是
“未定义的”
。有点奇怪,localStorage.getItem将返回一个字符串“undefined”或字符串“null”@CertainPerformance-ah,OK-pay来阅读整个问题,我猜:pNo,使用
“null”或“undefined”
,您可以使用
JSON.parse
。但是对于像
“en”或“jp”
这样的字符串,这种方法可以抛出Error@jdn现在请检查你的工作方式。但在我的情况下,我不想将对象保存到
localStorage
@jdn抱歉,我看不到任何其他方法