1

我试图了解这个 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

4 回答 4

3

It's the JavaScript ternary operator.

x = condition ? a : b

is equivalent to

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

Note that an assignment is not necessary. As an expression, it simply evaluates and produces a or b depending on the truth value of condition.

于 2013-02-10T04:05:54.230 回答
2

它被称为三元运算符。它的意思是:

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

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

于 2013-02-10T04:06:41.163 回答
2

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

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

于 2013-02-10T04:07:38.923 回答
1

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

于 2013-02-10T04:09:23.707 回答