在if条件中创建变量时出现意外的令牌var

时间:2018-11-10 06:12:59

标签: javascript if-statement

我正在创建变量并将其用于for语句

for(var i = 0; i < 10; i++) {
   console.log(i)
}

它工作正常,结果是1-10;

if条件下写相同内容

if(var value = 10) {
   console.log("Evaluate");
}

它是Unexpected token var的结果。 当我声明一个变量(var a = 10)时,导致相同的错误。有什么问题吗?

4 个答案:

答案 0 :(得分:2)

if语句仅在内部接受表达式(该计算结果为值)。像var value = ...这样的语句是语句-而不是求值,而是 (即创建绑定到名称{{1} }。因此,由于value不能作为表达式求值,因此会引发错误。

有些东西既可以作为语句也可以作为表达式(例如函数)进行评估,但是变量 creation 并不是其中之一。

请注意,变量 assignment var value = ...内是可能的,因为赋值确实计算为所赋值:

if

但这确实使阅读变得困惑-代码阅读者可能会立即担心这是否是错字。尽可能在var value; if(value = 10) { console.log('value now has the value 10'); }条件之外分配变量。

要创建新变量时,仅使用if。如果您只是想检查一个变量(例如,检查名为var的变量是否为value),则只需打印该变量名称,然后使用比较运算符( 10,而不是===):

=

答案 1 :(得分:1)

撰写时

var value = 10

实际评估为以下陈述:

var value;
value = 10

您不能在if中将语句写为 condition ,因为 condition 必须仅是 expression

  

被认为是真实或虚假的expression

答案 2 :(得分:0)

在外部声明并初始化变量。使用适当的运算符。

-v RS="\r\n"

答案 3 :(得分:0)

您需要这样声明变量:

    var value = 10;
    if(value == 10) {
       console.log("Evaluate");
    }