JS,这是啥语法? “var3 =(var1 > var2)?var1:var2”[重复]

Posted

技术标签:

【中文标题】JS,这是啥语法? “var3 =(var1 > var2)?var1:var2”[重复]【英文标题】:JS, what syntax is this? "var3 = (var1 > var2) ? var1 : var2" [duplicate]JS,这是什么语法? “var3 =(var1 > var2)?var1:var2”[重复] 【发布时间】:2015-06-17 02:59:39 【问题描述】:

我找到了一个使用以下语法的脚本:

var variable3 = (Math.abs(variable1)>Math.abs(variable2)) ? variable1 : variable2;

据我所知,如果variable1 大于variable2,这似乎可以比较。然后输出,如果是,variable1,否则输出variable2

我找不到任何描述,这似乎很方便,有人可以解释一下吗?

谢谢!

【问题讨论】:

看这里developer.mozilla.org/en-US/docs/Web/javascript/Reference/… 【参考方案1】:

这称为conditional operator(并且是 JavaScript 中唯一的三元运算符)。

这种情况下就相当于

if((Math.abs(variable1)>Math.abs(variable2)))

   variable3= variable1;

else

   variable3 = variable2;

【讨论】:

【参考方案2】:

它被称为“三元运算符”,它是另一种执行简单内联 if 语句并将值返回给变量的方法。

见Wikipedia for more info

【讨论】:

【参考方案3】:

类似

if(Math.abs(variable1)>Math.abs(variable2))
    var variable3 =  variable1;
else
    var variable3 =  variable2; 

【讨论】:

【参考方案4】:

这实际上是一个三元条件运算符(也称为? 标记运算符)。这用于代替if 语句,但它与if 语句一样灵活。

【讨论】:

以上是关于JS,这是啥语法? “var3 =(var1 > var2)?var1:var2”[重复]的主要内容,如果未能解决你的问题,请参考以下文章

这是啥语法,含义明确[重复]

这是啥新语法 gql`string` [重复]

createTextRange()方法在js中有啥作用

这是啥语法 - new (this) T(); [复制]

C++ 语法:在“模板”之后带有空格的 return 语句;这是啥意思[重复]

这是啥 ES6 语法?函数调用后的冒号[重复]