这段代码有啥作用? a = (a == b) ?丙:乙; [复制]
Posted
技术标签:
【中文标题】这段代码有啥作用? a = (a == b) ?丙:乙; [复制]【英文标题】:What does this piece of code do? a = (a == b) ? c: b; [duplicate]这段代码有什么作用? a = (a == b) ?丙:乙; [复制] 【发布时间】:2013-06-25 06:38:39 【问题描述】:a = (a == b) ? c: b;
我不明白。所有的a, b, c都是程序员设置的具有一定值的变量。
【问题讨论】:
如果 a 等于 b 则将 c 分配给 a 否则 b. 在其他语言中也有相同的运算符,但要记住 javascript 的一件事,即三元运算符的条件部分(本例中的(a == b)
)是“真实的”,而不仅仅是简单的布尔值。所以99 ? "a" : "b"
将返回“a”,0 ? "a" : "b"
将返回“b”。这可以让您在 javascript 中使用此运算符做一些很酷的事情(就像使用 ||
运算符一样)。
如果 a 等于 be 则 a 等于 c ,否则 a 等于 b 。
【参考方案1】:
那叫ternary operator: 和做的一样:
if(a == b)
a = c;
else
a = b;
【讨论】:
【参考方案2】:如果a
等于b
则a
= c
否则a
= b
。
【讨论】:
【参考方案3】:这是 if 和 assignment 的简写形式。
q = x ? y : z
q 是您分配给的变量 x 是一个布尔表达式,为真或假。 如果是真的 y 将被分配给你的变量 q 否则 z 将分配给 q。
【讨论】:
【参考方案4】:这是ternary operator,相当于:
if (a == b)
a = c;
else
a = b;
主要区别在于if/else
由条件语句组成,而三元运算符是条件表达式。换句话说,三元运算符就像 if/else 返回一个值一样工作。在其他一些语言中,if/else
也是表达式,因此以下是有效的,并且实际上等同于 ?:
:
a = (if (a == b) c; else b; ) // not valid javascript
一定要查看https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator
Mozilla 开发者网络是 JavaScript 的绝佳参考。
【讨论】:
【参考方案5】:如果 a
等于 b
则将 c
分配给 a
,否则将 b
分配给 a
【讨论】:
【参考方案6】:英文-
If a is equal to b, then a = c. otherwise, a = b
【讨论】:
【参考方案7】:?: 语法是ternary operator。本质上,这意味着如果a
等于b
,则a
等于c
,否则a
等于b
【讨论】:
以上是关于这段代码有啥作用? a = (a == b) ?丙:乙; [复制]的主要内容,如果未能解决你的问题,请参考以下文章