JavaScript:是否允许在`if`语句中使用`ternary`语句?

时间:2015-12-16 23:52:30

标签: javascript if-statement ternary-operator

在下面的脚本中,我在ternary语句的else if部分使用了if语句,并将两者并置。在这种情况下,我应该替换if中的其他else if语句吗?

var attackOpt = prompt('Which attack option does Angelo use in this turn?');

// Remaining number of times Angelo can cast spells:
var angMP = 3;


// Validity Check to see if the attack option entered can be executed:
while (true) {

        if (attackOpt === 'slash') {
            break;
        }

        else if (attackOpt === 'magic') {
            (angMP) ?
                 break;
                : attackOpt = prompt('Angelo can no longer cast spells. Select again.');
        }

}

3 个答案:

答案 0 :(得分:3)

是的,它会起作用,但它会使代码难以阅读。考虑修改您的' while'而是循环:

while (attackOpt !== 'slash' && angMP) {
   attackOpt = prompt('Angelo can no longer cast spells. Select again.');
}

当然,这是一种风格选择,完全取决于你。

答案 1 :(得分:2)

是的,你可以在允许表达式的任何地方使用三元运算符表达式(它不是语句)。

但是三元运算符使用表达式作为其3个参数。 break不是表达,而是声明。你不能在那里使用break

您必须使用if声明。

答案 2 :(得分:0)

不需要它会正常工作而没有任何问题

(angMP) ? break : attackOpt = prompt('Angelo can no longer cast spells. Select again.');