vue 中如何判断undefined类型?

created() {
        //如果取出来的可能是 undefined 类型 怎么判断?
        this.username = localStorage.getItem("username");
        
        //网上找的方式,发现没什么用啊!!
        if((typeof this.username) == 'undefined'){
            this.username="aaa";
        }
        //三等号也不行
        if((typeof this.username) === 'undefined'){
            this.username="aaa";
        }
        //不加引号 也没用
        if((typeof this.username) === undefined){
            this.username="aaa";
        }
      
    }
阅读 21.6k
4 个回答

首先,storage 里面就不支持别的类型,只支持字符串,所以你判断不出来存入的是字符串 'undefined' 还是 undefined,也判断不出来数值 1 还是字符串 '1'

image.png

localStorage.getItem

返回的字符串 或者 null

取出来的只能是 string | null

if(this.username === null){
   this.username = "aaa";
}

你在浏览器先试试localStorage的返回结果是什么在写后续的代码呀!
看栗子,本地没有user条目
image.png
结果是null
在看你的下一步判断,实际上是typeof判断了null的类型
image.png
结果是object字符串,一定不会匹配到undefined。
最后验证下网友的回复
image.png
网友说的是没错的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题