做啥 ?和:在javascript中的意思[重复]

Posted

技术标签:

【中文标题】做啥 ?和:在javascript中的意思[重复]【英文标题】:What do ? and : mean in javascript [duplicate]做什么 ?和:在javascript中的意思[重复] 【发布时间】:2013-01-25 12:26:47 【问题描述】:

我正在尝试理解这个 http://www.queness.com/post/12078/create-jquery-pinterest-pin-it-plugin 插件中的 javascript/jQuery。第 20 和 22 行让我很困惑,代码是:

pi_media = e.data('media') ? e.data('media') : e[0].src,

pi_desc = e.attr('title') ? e.attr('title') : e.attr('alt'),

谁能帮我弄清楚这些行在 Javascript 中的含义

【问题讨论】:

developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/… 对不起,我不知道为什么我没有看到完全相同的副本。随意关闭它。 请注意,冒号 : 除了在三元运算符中的使用、对象文字上下文中的赋值和标签声明之外还有其他两个含义。 然而,这个页面上给出的答案看起来更像参考并且质量更高,所以保持它的开放性也许有价值? 【参考方案1】:

以代码为例:var result=condition?arg1:arg2; 首先评估条件。 如果评估结果为true,则返回arg1并分配给result 如果评估结果为false,则返回arg2并分配给result

【讨论】:

【参考方案2】:

这些是三元运算符的一部分。

基本上,如果? 之前的条件被评估为真,则紧跟在? 之后的表达式是被评估的,否则: 之后的表达式被评估。

【讨论】:

【参考方案3】:

它被称为Ternary Operator。意思是:

计算?左侧的表达式 如果表达式计算结果为true,则运行第一段代码(在?: 之间) 如果表达式计算结果为false,则运行第二段代码(在: 之后)

这是许多 C 风格语言共有的结构。

【讨论】:

【参考方案4】:

这是 JavaScript ternary operator。

x = condition ? a : b

等价于

if(condition)
    x = a;
else
    x = b;

请注意,分配不是必需的。作为一个表达式,它只是根据condition 的真值计算并生成ab

【讨论】:

更多信息:en.wikipedia.org/wiki/%3F%3A

以上是关于做啥 ?和:在javascript中的意思[重复]的主要内容,如果未能解决你的问题,请参考以下文章

有啥作用?。和 ?? javascript中的操作符是做啥的? [复制]

请问HTML里面的hidden是啥意思???做啥用的

请问HTML里面的hidden是啥意思???做啥用的

“?”是啥意思?和“:”在布尔语句中做啥? [复制]

“启用加载”和“包括在报告刷新中”是啥意思/做啥?

">"在Css中做啥[重复]