0

我一直在查看其他人的 javascript 代码并注意到如下变量行:

opacity = isIn ? 0 : 1;,

opacity = isIn ? opacity + gap : opacity - gap;,

var s = this == binary ? h(binary, f, change, text) : h(text, r, change2, binary);,

和其他类似的代码行。它们是如何工作的?它们是什么类型的变量?

太感谢了!

4

2 回答 2

3

这是一种if称为条件(或三元)运算符的特殊形式:

var value = condition ? value_when_true : value_when_false;

如果condition计算结果为truevalue将分配value_when_true,否则,将分配value_when_false

它在功能上与以下内容相同:

var value;
if (condition) {
  value = value_when_true;
} else {
  value = value_when_false;
}

有关详细说明,请参阅此 MDN 文章

于 2013-10-16T11:48:37.390 回答
1

它被称为三元运算符

http://msdn.microsoft.com/en-us/library/ie/be21c7hw%28v=vs.94%29.aspx

var s = (some_condition) ? if_true_value : if_false_value;

如同

if(some_condition){
   s = if_true_value;
}else{
   s = if_false_value;
}
于 2013-10-16T11:49:52.597 回答