做什么 ?并且:在javascript中表示

时间:2013-02-10 04:04:13

标签: javascript

我试图理解这个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中的含义

4 个答案:

答案 0 :(得分:3)

它是JavaScript ternary operator

x = condition ? a : b

相当于

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

请注意,不需要分配。作为表达式,它只是根据a的真值来评估和生成bcondition

答案 1 :(得分:2)

它被称为Ternary Operator。这意味着:

  • 评估?
  • 左侧的表达式
  • 如果表达式评估为true,请运行第一段代码(在?:之间)
  • 如果表达式评估为false,请运行第二段代码(在:之后)

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

答案 2 :(得分:2)

这些是三元运营商的一部分。

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

答案 3 :(得分:1)

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