!= null或!= undefined not working

时间:2017-12-09 07:09:19

标签: javascript null local-storage undefined

我试图在主页上创建一个个性化的欢迎信息,基本上是说“欢迎[用户名]"提供用户已注册,其用户名进入localStorage。这工作正常,但我只希望消息显示用户实际注册时的用户名(否则它说"欢迎Null"。所以我试图使用以下代码来做到这一点:

// Stores username inputted on registration page inside Local Storage//
function storeUsrName() {
   var regName= document.getElementById("regName");
   localStorage.setItem("usrName", regName.value);
   alert("Thanks for registering!");
 };

// Display welcome message //
$(document).ready(function() {
  var usrName = localStorage.getItem("usrName");

  if (usrName !="null" || usrName !="undefined") {
    document.getElementById("welcomeMessage").innerHTML = ("Welcome " + usrName + "! ");
  } else {
    document.getElementById("welcomeMessage").innerHTML = ("Welcome! ");
  }
});

如果用户注册并为usrName分配了值,则欢迎消息可以正常工作。但我希望欢迎消息说“#34;欢迎!"如果用户第一次访问该站点,并且他们尚未注册,则usrName没有值(null或undefined)。

相反,如果usrName没有值,则if / else语句不能正常工作,并且欢迎消息显示" welcome null!"尽管我只想要usrName如果值为非null或未定义,则显示在欢迎消息中。

有没有正确的方法呢?

3 个答案:

答案 0 :(得分:3)

usrName !="null"正在与字符串null进行比较,将if (usrName !="null" || usrName !="undefined") {更改为

if (usrName !== null || usrName !==undefined) {.. rest of code}

答案 1 :(得分:1)

nullundefined是常量值,而不是字符串。您需要省略""部分。您也可以将nullundefined检查合并到一个单独的支票中,就像这样

if(userName) {
   // ...your code
} 

由于nullundefinedfalsy值,您可以尝试在if语句中评估userName而不检查每种情况。

答案 2 :(得分:0)

可能是null不是字符串,所以“null”这对null无效你也可以像下面那样写

usrName!=“”。(注意只是双引号之间没有空格!) 我不知道未定义的抱歉。