我正在尝试在主页上创建个性化的欢迎消息,基本上说"欢迎[用户名]",前提是用户已注册并且其用户名进入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分配了一个值,则欢迎消息正常。但是我希望欢迎消息说"欢迎!"如果它是用户第一次访问该网站,而他们尚未注册,并且USRNAME没有价值(null或Undefined)。
相反,如果usrname没有价值,则if/else语句无法正常工作,欢迎消息显示"欢迎null!",尽管我只希望在欢迎消息中显示usrname值不是零或未定义的。
是否有一些正确的方法?
usrName !="null"
与字符串null
进行比较,将if (usrName !="null" || usrName !="undefined") {
更改为
if (usrName !== null || usrName !==undefined) {.. rest of code}
null
和 undefined
是常数值,而不是字符串。您需要从它们中省略""
部分。另外,您可以将null
和undefined
组合在单个检查中进行检查
if(userName) {
// ...your code
}
因为null
和undefined
是 falsy 值,您可以尝试在IF语句中评估userName
,而无需检查每种情况。
可能是null不是字符串,因此" null"这对null无效,您也可以像以下
一样写入usrname!="。(关心它们之间没有双引号!)我不知道为此不确定。