【问题标题】:Ternary Operators in Javascript [closed]Javascript中的三元运算符[关闭]
【发布时间】:2012-10-18 11:04:58
【问题描述】:

我正在使用三元运算符,我需要一些帮助。我正在转换一个简单的 if-else 语句,但我有一个简单的语法错误,我似乎无法弄清楚。我正在练习代码学院的练习,但我得到的错误是第一行未定义。 这是原始代码:

if (food === "taco") {
  foodType = "Mexican";
} else {
  foodType = "other";  
}

这是我的代码。第一行是未定义的,但我似乎无法弄清楚如何。

var food = prompt("Food type");
var food === "taco" ? "Mexican": "other";

【问题讨论】:

  • @Bryan Java 中没有 var。
  • 这一行 "var food = prompt("Food type"); " 与您提出的问题完全无关...
  • @MitchWheat 这是怎么回事?为什么这很重要?它为我们证明food 是一个字符串并且=== 的使用是有效的。我看不出它是如何“完全不相关”的......
  • @ianpgall:看到这一点:“这里是原始代码”
  • @MitchWheat 是的,是的,我打赌“原始代码”也有 prompt,只是不包括在内。我想这些东西应该更一致

标签: javascript ternary-operator


【解决方案1】:

我想你的意思是:

foodType = (food === "taco") ? "Mexican": "other"
                   ^condition       ^true    ^false

MDN: Conditional Operator

【讨论】:

    【解决方案2】:

    三元语法应该是这样的,

    variableToBeSet = (condition) ? trueValue : falseValue;
    

    在你的问题中,

    foodtype = (food === "taco") ? "Mexican": "other";
    

    【讨论】:

      【解决方案3】:

      布尔表达式?值1:值2

      例如下面的 if..then..else 语句

      boolean isSmiley = true;
      
       String mood = "";
      
       if (isSmiley == true)
       {
         mood = "I'm Happy!";
       }
       else
       {
         mood = "I'm Sad!";
       }
      

      现在您可以使用如下所示的三元选项

       boolean isSmiley = true;
       String mood = (isSmiley == true)?"I'm Happy!":"I'm Sad!"; 
      

      【讨论】:

        猜你喜欢
        • 2021-12-19
        • 1970-01-01
        • 2020-04-14
        • 2014-11-06
        • 2015-02-15
        • 2014-03-18
        • 1970-01-01
        • 1970-01-01
        • 2020-04-29
        相关资源
        最近更新 更多