我无法回忆如何在if语句中比较这两个字符串。我要做的是检查我的变量compare
是否等于page1
或page2
,如果没有,请转到else语句。
var compare = "page3";
if (compare === "page1" || "page2") {
document.body.innerHTML = "github url";
} else {
document.body.innerHTML = "non-github url";
}

答案 0 :(得分:5)
您可以检查每个选项。
if (compare === "page1" || compare === "page2") {
或者您可以使用数组并使用Array#some
之类的存在量词进行检查,例如
if (["page1", "page2"].some(a => a === compare)) {
var compare = "page3";
if (compare === "page1" || compare === "page2") {
document.body.innerHTML = "github url";
} else {
document.body.innerHTML = "non-github url";
}

答案 1 :(得分:1)
每当您在if
条件下检查多项内容时,您必须将每个条件与另一个条件分开编写。因此,测试必须写成:
// If compare equals "page1" OR compare equals "page2"
if (compare === "page1" || compare === "page2") {
当您拥有可能包含许多不同值的单个变量时,使用switch
语句可能更合乎逻辑且更高效,因为它只需要查找变量的值一次。
此外,请记住字符串是文字,“page1”不等于“Page1”。要进行不区分大小写的比较,可以先强制所有值降低(或更高)大小写,然后相互检查(如此处所示):
switch (compare.toLowerCase()) {
case "page1" :
// Do work here
break;
case "page2" :
// Do work here
break;
case "page3" :
// Do work here
break;
default :
// Do work here
break;
}
答案 2 :(得分:1)
a.localeCompare(b)
是比较大字符串的另一种很酷的方法
function areEqual(a, b){
if (a.length !== b.length) {
return false;
}
return a.localeCompare(b) === 0;
}
if(areEqual(a,b)){...}
答案 3 :(得分:1)
尝试
if( ["page1", "page2"].includes(compare) ){...}
var compare = "page3";
if( ["page1", "page2"].includes(compare) ) {
document.body.innerHTML = "github url";
} else {
document.body.innerHTML = "non-github url";
}