做啥 ?和:在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
的真值计算并生成a
或b
。
【讨论】:
更多信息:en.wikipedia.org/wiki/%3F%3A以上是关于做啥 ?和:在javascript中的意思[重复]的主要内容,如果未能解决你的问题,请参考以下文章