在JavaScript中的if语句中声明变量

Declaring a variable inside if statement in JavaScript

本文关键字:声明 变量 语句 if JavaScript 中的      更新时间:2023-09-26

为什么以下JavaScript无效?

if (var foo = (true || false)) {
    console.log(foo);
}

当您在JavaScript中声明变量时,赋值将返回新变量的值,因此您可以执行以下操作:

if (foo = (true||false)) console.log('Hello!');
> Hello!

现在,如果您调用foo,它将具有值true:

console.log(foo);
> true

您不能使用var专用词,因为if是一个语句,而不是函数。如果你想确定变量的范围,那么你必须首先声明它:

var foo;
if (foo = (true||false)) console.log('Hello!');
> Hello!

看看这里:

http://www.ecma-international.org/ecma-262/5.1/#sec-12.5

然后在这里:

http://www.ecma-international.org/ecma-262/5.1/#sec-11

并得出语法无效的结论,因为:

http://www.ecma-international.org/ecma-262/5.1/#sec-12.2

关于(或者更确切地说,缺乏)上述内容。

试试这个:

 var foo = true || false;  
 if (foo) {
     console.log(foo);
  }

先放置声明,然后检查条件。

您可以这样做:

var foo;//declare the variable first
if (foo = (true || false)) { //then assign the value for foo
    console.log(foo);
}

不能在if语句中创建变量声明。