代码之家  ›  专栏  ›  技术社区  ›  techno

表达式应为near if条件

  •  0
  • techno  · 技术社区  · 4 年前

    我在VS near中不断得到表达式预期错误 if(isnullor ........

    if (value) {
      if (isNullOrUndefined(x.value) && isNullOrUndefined(x.value2)) {
        x.minMark + '-' + a + '*' 
        + x.b + ' ' + '+' + ' ' + x.c + ' ' 
        + val + '+' + ' ' + '*' + x.s 
        + ' ' + '+' + ' ' + ' ' + ' ' + x.val4;
      } else {
      }
    } else {
      localeHelper.translate('module.reportSheet.inProgressMsg');
    }
    
    
    1 回复  |  直到 4 年前
        1
  •  1
  •   T.J. Crowder    4 年前

    您没有提供太多的上下文,但这一部分是可疑的,原因有两个:

    if(isNullOrUndefined(x.value) && isNullOrUndefined(x.value2))
    {
      x.minMark + '-' + a+ '*'
      + x.b+ ' ' + '+' + ' ' + x.c+ ' '
      + val+ '+' + ' ' + '*' + x.s
      + ' ' + '+' + ' ' + ' ' + ' ' + x.val4
    }
    
    1. 由于自动插入分号,您总是希望 + 在前一行的末尾而不是下一行的开头,因为在下一行的开头它可以是一元加号运算符。对于ASI,如果在行尾添加分号不会使语法无效,通常会添加分号(但并不总是这样,规则稍微复杂一些)。

    2. 这里有一个表达式语句(一系列的加法),它的结果从来没有用于任何东西。也许你想用 x.minMark = x.minMark += 或者别的什么而不是 x.minMark + .


    表达式语句 是用作语句的表达式。JavaScript是 轻微地 不寻常的是它有(几乎)无限的 expression statement ( 表达式可以用作语句,而不是一些边缘情况(这些情况可能不明确,并且必须包装在括号表达式中),不像其他一些语言(包括Java)那样 limited ones 只允许某些表达式(如方法调用)成为语句。