【问题标题】:simple javascript question [duplicate]简单的javascript问题[重复]
【发布时间】:2011-04-14 11:08:15
【问题描述】:

可能重复:
javascript ? : notation

“?”是什么意思?运算符是什么意思?

【问题讨论】:

  • 所以这个三元运算符走进了一个酒吧……

标签: javascript


【解决方案1】:

它与: 一起构成ternary operator,并且是根据条件结果(第一个子表达式)返回两个值(第二个和第三个子表达式)之一的快捷方式。

维基百科给出了很好的描述:http://en.wikipedia.org/wiki/%3F:#Javascript

这样使用:

var result = (condition ? value_for_true : value_for_false);

示例:

var result = (1 > 0 ? "It is greater" : "It is less");

以上示例将"It is greater" 存储在变量result 中。

就其本身而言,? 在不使用 : 的情况下除了会导致语法错误之外什么都不做。

【讨论】:

  • 谢谢,在 google 上查看,但它使用了“?”表示问题。
  • 当然。顺便说一句,这是许多语言的共同特征:en.wikipedia.org/wiki/%3F。不仅仅是 JavaScript。
【解决方案2】:

表示内联 if

条件? true_statement : false_statement

例如

if(condition){
alert("true");
}else{
alert("false");
}

等同于condition ? alert("true"): alert("false");

【讨论】:

  • 作为参考,条件运算符的真假部分应该是值,而不是动作。我会推荐alert(condition ? "true" : "false")——尽管在这种特殊情况下,alert(condition.toString()) 也可以工作。无论哪种方式,如果您必须在两个操作之间做出决定,请使用if/else;如果您要在两个值之间做出决定,请使用 ?:
  • 我只是表明它可以像常规一样工作,尽管您是对的,但它可以像 return (condition ? "ok" : "nope"); 一样使用;
【解决方案3】:

它是ternary operator 的一部分。

// This simple if
if (25 > 23) {
    alert("yes");
} else {
    alert("no");
}

// Is the same as
alert(25 > 23 ? "yes" : "no");

【讨论】:

    【解决方案4】:

    您可能指的是?: 或三元运算符。由于之前已经多次介绍过,我将向您推荐this thread以获得完整的解释。

    【讨论】:

    • 其实是JS conditional operator,是JS中唯一的三元运算符。
    • 你知道,如果最终出现另一个三元运算符,人们会感到相当困惑。他们将不知道如何称呼现有的了。
    猜你喜欢
    • 2022-11-09
    • 2011-01-29
    • 1970-01-01
    • 2021-07-25
    • 2015-12-06
    • 2011-10-04
    • 2011-07-19
    • 2011-11-18
    相关资源
    最近更新 更多