意外的令牌,预期:

时间:2018-04-10 15:20:36

标签: javascript ecmascript-6 ternary-operator

我想使用三元运算符但是我收到以下错误消息:

"意外的令牌,预期:"

为什么?

这是我的第一个代码:

.as-console-wrapper {
  top: 0;
  max-height: 100% !important;
}

这是我最近的代码:

const GetUp = (num) => {
  for (let i = 1; i <= num; i++) {
    if (i % 3 === 0) {
      console.log('Get')
    }
    if (i % 5 === 0) {
      console.log('Up')
    }
    if (i % 3 === 0 && i % 5 === 0) {
      console.log('GetUp')
    } else {
      console.log(i)
    }
  }
}
GetUp(200)

5 个答案:

答案 0 :(得分:6)

如果没有&&

,请使用else进行拍摄

添加半字段;,让它知道它是指令的结束,否则它会将这三行评估为一条指令。

&#13;
&#13;
const SetRuc = (num) => {
  for (let i = 1; i <= num; i++) { 
    (i % 3 === 0) && console.log('Set');
    (i % 5 === 0) && console.log('Ruc');
    (i % 3 === 0 && i % 5 === 0) ? console.log('SetRuc') : console.log(i);
  }
}

SetRuc(100)
&#13;
&#13;
&#13;

答案 1 :(得分:4)

EG this:

(i % 3 === 0) ? console.log('Set')

:提供了?选项。如果您在?检查为假的情况下不希望发生任何事情,则可以只提供一个空对象,或undefined

(i % 3 === 0) ? console.log('Set') : {}

答案 2 :(得分:1)

如果您不想在三元运算符中出现错误结果时执行任何操作。你可以说statement ? 'expression' : null

之类的东西

在那里提到null。像

这样的东西

const SetRuc = (num) => {
  for (let i = 1; i <= num; i++) { 
    (i % 3 === 0) ? console.log('Set') : null;
    (i % 5 === 0) ? console.log('Ruc') : null;
    (i % 3 === 0 && i % 5 === 0) ? console.log('SetRuc') : console.log(i);
  }
}

SetRuc(100)

答案 3 :(得分:0)

您滥用三元运算符,语法为:

condition ? expr1 : expr1

假设条件为真时将执行expr1,否则expr2将会执行。

所以你可能想要这个:

const SetRuc = (num) => {
  for (let i = 1; i <= num; i++) { 
    (i % 3 === 0) ? console.log('Set') :
    (i % 5 === 0) ? console.log('Ruc') :
    (i % 3 === 0 && i % 5 === 0) ? console.log('SetRuc') : console.log(i)
  }
}

SetRuc(100)

答案 4 :(得分:0)

const SetRuc = (num) => {
  for (let i = 1; i <= num; i++) { 
    (i % 3 === 0) ? console.log('Set') :
    (i % 5 === 0) ? console.log('Ruc') :
    (i % 3 === 0 && i % 5 === 0) ? console.log('SetRuc') : console.log(i)
  }
}

SetRuc(100)

您在:console.log('Set')

之后错过了console.log('Ruc')