JavaScript 中的 ?: 语法是啥? [复制]

Posted

技术标签:

【中文标题】JavaScript 中的 ?: 语法是啥? [复制]【英文标题】:What is the ?: syntax in JavaScript? [duplicate]JavaScript 中的 ?: 语法是什么? [复制] 【发布时间】:2015-10-17 03:53:35 【问题描述】:

下面一行是什么意思?

T = ($("#a .b").hasClass("active") ? "C" : "D") ;

$("#a .b").hasClass("active") 表示#a .b 是否存在?但是? "C" : "D"呢,是不是某种比较逻辑?

【问题讨论】:

它是三元运算符(与 jQuery 无关),是 if/else 语句的简写 你是对的,我只是在 jquery 语句中看到它。谢谢罗伊 【参考方案1】:

这是ternary operator

condition ? expr1 : expr2 

如果条件为真,则 expr1 将返回,否则 expr2 将返回。

所以,在你的情况下:

T = ($("#a .b").hasClass("active") ? "C" : "D") ;

T 变量将保持 "C" 如果 $("#a .b") 具有类 active 否则它将保持 "D"

【讨论】:

【参考方案2】:

它告诉你:

if ( $("#a .b").hasClass("active") )     
   T = "C";
 else 
   T = "D"

您可以在此处阅读此文档以进一步了解。 Ternary Operator

【讨论】:

以上是关于JavaScript 中的 ?: 语法是啥? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

javascript 中的 obj?.prop 语法是啥? [复制]

React 和 GraphQL 中使用的“...”语法是啥?它是更通用的Javascript吗?

在Javascript中更新对象数组中的键的最有效方法是啥? [复制]

JavaScript/jQuery 中括号中的代码块是啥意思? [复制]

javascript中调用的这种形式或语法是啥? [关闭]

浏览器Javascript类(不是node.js)中私有方法的语法是啥? [复制]