如何取消此js代码

时间:2016-02-08 22:04:22

标签: javascript

我试图理解this Tic-Tac-Toe (30 lines of code) game的代码并遇到了这个奇怪的j符号。

  1. t[id] ? ai() : move(id, 'ai');
  2. !checkEnd() ? (role == 'player') ? ai() : null : reset()
  3. 我知道这是if语句的缩短版本,但不知道如何转换它。

    提前致谢。

2 个答案:

答案 0 :(得分:2)

这是javascript中的ternary operator

t[id] ? ai() : move(id, 'ai');

转换为:

if (t[id])
    ai();
else
    move(id, 'ai');

!checkEnd() ? (role == 'player') ? ai() : null : reset()来:

if (!checkEnd())
    if (role == 'player')
        ai();
    else
        ;
else
    reset();

答案 1 :(得分:0)

这被称为三元运算符。

从MDN检查this。如果您正在开始,他们会有很好的信息。 这个来自MSDN

简单地说,

condition ?  expression if true : expression if false