带三元运算符的附加赋值运算符

时间:2014-04-03 03:39:25

标签: javascript

我想知道是否可以将条件运算符与其他赋值运算符组合在一起。所以如果我有一个循环:

var list = ""

for (var i=0; i < 3; i++) {
    list += (i = 2 ? "yea " : "nope")
}
alert( list )

我希望收到一条警告说yea yea nope然而它只是循环一次并给出yea。这是可能的,还是我只需要使用标准的if / else语句?

的jsfiddle: http://jsfiddle.net/uU9g2/

2 个答案:

答案 0 :(得分:4)

i = 2是一项任务,而非考试。它将i设置为2,这是真的,因此输出“是”。然后循环增量i++i从其新值2增加到3,之后它不再是< 3,因此循环终止。

您想要i == 2

答案 1 :(得分:1)

var list = ""

for (var i=0; i < 3; i++) {
    list += (i == 2 ? "yea " : "nope")
}
alert( list )

您需要==而不是=