【发布时间】:2019-11-04 18:06:01
【问题描述】:
我有这样的用例:
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 获得 language 时,其值为 null 或 undefined。我收到的结果是一个字符串("null" 或"undefined")
在当前代码中,我像这样检查手册:
const getLanguage = localStorage.getItem("language");
const defalutLanguage = "en";
const currentLanguage = ( getLanguage && getLanguage !== "null"
&& getLanguage !== "undefined" ) ? getLanguage : defalutLanguage
但是,我知道这是一个坏方法。那么,有什么方法可以快速检查我的情况吗?
感谢任何帮助
【问题讨论】:
-
localStorage.getItem无论如何都不会返回undefined -
看起来很合理,但除非您需要区分 null 和 undefined,否则当得到的
language错误时,请考虑使用空字符串调用setItem。更容易不输入您以后会忽略的数据 -
@Bravo 存储在 localStorage 中的 string 在这里是
'undefined'。有点奇怪 -
不,localStorage.getItem 将返回字符串“undefined”或字符串“null”
-
@CertainPerformance - 啊,好吧 - 我猜想阅读整个问题是值得的:p