我试图在主页上创建一个个性化的欢迎信息,基本上是说“欢迎[用户名]"提供用户已注册,其用户名进入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或未定义,则显示在欢迎消息中。
有没有正确的方法呢?
答案 0 :(得分:3)
usrName !="null"
正在与字符串null
进行比较,将if (usrName !="null" || usrName !="undefined") {
更改为
if (usrName !== null || usrName !==undefined) {.. rest of code}
答案 1 :(得分:1)
null
和undefined
是常量值,而不是字符串。您需要省略""
部分。您也可以将null
和undefined
检查合并到一个单独的支票中,就像这样
if(userName) {
// ...your code
}
由于null
和undefined
是falsy值,您可以尝试在if语句中评估userName
而不检查每种情况。
答案 2 :(得分:0)
可能是null不是字符串,所以“null”这对null无效你也可以像下面那样写
usrName!=“”。(注意只是双引号之间没有空格!) 我不知道未定义的抱歉。