如何比较 javascript if 条件下的两个字符串

how to compare two strings in javascript if condition

我记不起如何在 if 语句中比较这两个字符串。我要做的是检查我的变量 compare 是否等于 page1page2 如果不等于,则转到 else 语句。

var compare = "page3";

if (compare === "page1" || "page2") {
  document.body.innerHTML = "github url";
} else {
  document.body.innerHTML = "non-github url";
}

您可以检查每个选项。

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";
}

只要您在一个 if 条件中检查多项内容,就必须将每个条件分开编写。所以,测试必须写成:

// If compare equals "page1" OR compare equals "page2"
if (compare === "page1" || compare === "page2") {

当您有一个可能包含许多不同值的变量时,使用 switch 语句可能更合乎逻辑且更有效,因为它只需查找一次变量的值。

另外,记住字符串是文字,"page1" 不等于 "Page1"。要进行 case-insensitive 比较,您可以先将所有值强制为小写(或大写),然后相互检查(如此处所示):

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;
}

a.localeCompare(b) 是比较较大字符串的另一种很酷的方法

function areEqual(a, b){


  if (a.length !== b.length) {
         return false;
  }

  return a.localeCompare(b) === 0;
}


if(areEqual(a,b)){...}

尝试

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";
}