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

时间:2014-09-03 11:37:24

标签: javascript

为什么以下无效的JavaScript?

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

4 个答案:

答案 0 :(得分:2)

当您在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!

答案 1 :(得分:1)

看看这里:

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

与上述相关(或缺乏)。

答案 2 :(得分:0)

试试这个:

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

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

答案 3 :(得分:0)

你可以这样做:

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

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