Javascript |解析错误:

时间:2018-03-06 17:53:08

标签: javascript eslint

在阅读下文之前,请注意我最近才开始学习Javascript。

我有兴趣制作基于文本的生存游戏。当试图从整体中减去一个随机数的幸存者时,我试图写出我认为的内容,“如果数字为0.50 - 1.00就会发生突袭,如果raid成功,该组会丢失一个随机数幸存者介于1之间,然而有很多幸存者。“然而,当我写这篇文章时,我得到一个ESLint错误,说明:错误:解析错误:意外令牌如果我不知道如果可能的话,我知道如何重写它,或者如何重新格式化它。问题出现在下面的代码中,第10,11行和第10行。 12。

//constants
var EVENT_CHANCE = 0.15;
var EVENT_TYPE = 0.50;
var FOOD_CONSUMPTION = FOOD_CONSUMPTION;
var MATERIALS_CONSUMPTION = 1;
var ENEMY_STRENGTH = 10;
var SURVIVOR_STRENGTH = 1;
//equations
this.FOOD_CONSUMPTION = (this.food - this.surviors);
this.raid = if ( EVENT_TYPE > 0.50);{
this.survivors - Math.floor((Math.random() * this.surviors) + 1);
};

如果我遗漏任何重要内容,请告诉我

注意:我从游戏开发堆栈交换中复制了这篇文章,因为他们告诉我它更像是一个堆栈溢出问题,因为它与整个JS有关,而不是游戏开发。

2 个答案:

答案 0 :(得分:0)

您不能使用语句作为作业的右侧,这是您在此尝试做的事情:

this.raid = if ( EVENT_TYPE > 0.50);{
    this.survivors - Math.floor((Math.random() * this.surviors) + 1);
};

如果您想将this.raid设置为EVENT_TYPE > 0.50的结果,您只需直接执行此操作:

this.raid = EVENT_TYPE > 0.50;

如果您想在分支中使用它,可以使用if测试this.raid跟随它:

this.raid = EVENT_TYPE > 0.50;
if (this.raid) {
    this.survivors - Math.floor((Math.random() * this.survivors) + 1);
}

(我还修正了一个拼写错误,第二个survivors错过了v。但是还有一个问题我还不知道如何修复:它计算一个值而不将其存储在任何地方。它在JavaScript中不是错误,但它可能不是你想要的。你的意思可能是-= -。)

请注意,最初位于;的{​​{1}}都不属于那里。您不能在if ;之后()放置if,并且在流量控件附加块之后您不会放置;声明(ifwhile等)。

答案 1 :(得分:0)

  1. 条件
  2. 后面有分号
  3. 要有条件地分配变量,您需要使用三元运算符,例如:

    const thing = condition ? ifTrue : ifFalse;
    
  4. 或者代码:

    this.raid = EVENT_TYPE > 0.50 ?
      this.survivors - Math.floor((Math.random() * this.surviors) + 1) :
      null;
    //replace the null with what you want the variable to be if the condition is false