我试图理解这个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中的含义
答案 0 :(得分:3)
它是JavaScript ternary operator。
x = condition ? a : b
相当于
if(condition)
x = a;
else
x = b;
请注意,不需要分配。作为表达式,它只是根据a
的真值来评估和生成b
或condition
。
答案 1 :(得分:2)
它被称为Ternary Operator。这意味着:
?
true
,请运行第一段代码(在?
和:
之间)false
,请运行第二段代码(在:
之后)这是许多C风格语言共有的结构。
答案 2 :(得分:2)
这些是三元运营商的一部分。
基本上,如果?
之前的条件被评估为真,则紧跟?
之后的表达式是被评估的表达式,否则评估:
之后的表达式
答案 3 :(得分:1)
例如,取代码:
var result=condition?arg1:arg2;
首先评估条件
如果评估结果为true
,则会返回arg1
并将其分配给result
如果评估结果为false
,则会返回arg2
并分配给result