【问题标题】:How to use OR condition in a JavaScript IF statement?如何在 JavaScript IF 语句中使用 OR 条件?
【发布时间】:2010-03-02 14:38:10
【问题描述】:

我知道你可以用 JavaScript 编写:

if (A && B) { do something }

但是我该如何实现 OR,例如:

if (A OR B) { do something }

【问题讨论】:

  • 顺便说一句,这不是 jQuery 特定的。它只是一个 Javascript 库。您的问题是特定于 Javascript 的。
  • @BalusC 这些天他们几乎是同义词:P
  • @Dolbz pfooo 不同意!! :P
  • @web-stars 自 2010 年以来发生了很大变化 :)
  • @Dolbz mmm,哎呀...:P 自 2010 年以来我仍然一无所知。

标签: javascript boolean-expression


【解决方案1】:

只需使用the logical "OR" operator,即||

if (A || B)

【讨论】:

【解决方案2】:

值得注意的是,如果 AB 都是 true|| 也将返回 true

在 JavaScript 中,如果您要查找 AB但不能同时查找,您需要执行以下类似操作:

if( (A && !B) || (B && !A) ) { ... }

【讨论】:

  • 不应该是第一个短语“值得注意的是,如果 var A 或 var B 为真,|| 将返回真”??这意味着您提到的是 (true | true) = true。这是常见的和理解的。
  • (A && !B) || (B && !A) 可以替换为 A ^ B 更平滑
  • @Murplyx:在大多数情况下是的,但是 32 位范围之外的数字可能会失败。 (Math.pow(2,32)-1) ^ 0; // -1 (success) ... Math.pow(2,32) ^ 0; // 0 (failure)
  • if (A ? !B : B) {... 将是一个更短的替代品,没有 32 位限制。或者if (!A != !B) {...
  • @squint 为什么真或假会超出 32 位范围,因此它们只有 0 或 1,顺便说一句,如果您比较数字,只需使用 !!n 来获取布尔值。
【解决方案3】:

【讨论】:

    【解决方案4】:
    if (A || B) { do something }
    

    【讨论】:

      【解决方案5】:

      || 是 or 运算符。

      if(A || B){ do something }
      

      【讨论】:

        【解决方案6】:

        这是我的例子:

        if(userAnswer==="Yes"||"yes"||"YeS"){
         console.log("Too Bad!");   
        }
        

        这表示如果答案是“是”或“是”,那么同样的事情将会发生

        【讨论】:

        • 您的答案是否比现有答案有所改进?这是一个特定的用例?
        • 有效吗?我这样编码,但它是语法错误。我这样编码。 if (name === 'Jam' || name === 'Jem' || name == 'Jum')
        • 是的,我发现了你必须分别包含每个语句的困难方式。我发现if (number === 1||2||3) 就像while (true);第二个和第三个条件询问 2 是否为 2 和/或 3 是否为 3。它们总是解析为真,语句总是通过。我计划减少字符数。将语句放在括号中确实更容易阅读。
        • 最好使用 .toLowerCase() 而不必检查所有不同的大小写变体。
        • var choice = prompt("你选择石头、纸还是剪刀?").toLowerCase(); if (userChoice != ("paper"||"rock"||"scissors")) { console.log("Invalid Choice made"); }
        【解决方案7】:

        也可以使用regular expressions

        var thingToTest = "B";
        if (/A|B/.test(thingToTest)) alert("Do something!")

        下面是一般的正则表达式示例:

        var myString = "This is my search subject"
        if (/my/.test(myString)) alert("Do something here!")

        这将在变量“myString”中查找“my”。您可以直接用字符串代替“myString”变量。

        作为额外的好处,您还可以将不区分大小写的“i”和全局“g”添加到搜索中。

        var myString = "This is my search subject"
        if (/my/ig.test(myString)) alert("Do something here");

        【讨论】:

        • 有趣。文档?
        【解决方案8】:

        如果我们要提及正则表达式,我们不妨提及switch statement

        var expr = 'Papayas';
        switch (expr) {
          case 'Oranges':
            console.log('Oranges are $0.59 a pound.');
            break;
          case 'Mangoes':
          case 'Papayas': // Mangoes or papayas
            console.log('Mangoes and papayas are $2.79 a pound.');
            // expected output: "Mangoes and papayas are $2.79 a pound."
            break;
          default:
            console.log('Sorry, we are out of ' + expr + '.');
        }

        【讨论】:

          【解决方案9】:

          如果条件和符号为||,则需要不止一个条件语句才能使用OR(||) 运算符。

          if(condition || condition){ 
             some stuff
          }
          

          【讨论】:

          • 你为什么用完全相同的答案回答老问题?
          【解决方案10】:

          你可以用赞

          if(condition1 || condition2 || condition3 || ..........)
          {       
               enter code here
          }
          

          【讨论】:

          • 你为什么用完全相同的答案回答老问题?
          【解决方案11】:

          只需使用||

          if (A || B) { your action here }
          

          注意:带有字符串和数字。比较复杂。

          检查this 以获得深入了解:

          【讨论】:

          • 这个问题四年前就有答案了。您的答案是否比现有答案有所改进?
          • @JoeFrambach:不,我只是想更清楚地回答:)
          猜你喜欢
          • 2016-05-28
          • 1970-01-01
          • 1970-01-01
          • 2019-03-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-07-04
          相关资源
          最近更新 更多