2

这篇文章启发了我。我做了一些测试。

console.log( false, 5 );打印出来false 5,没关系。

console.log( ( false, 5 ) );打印5。现在我们知道这也没关系,因为( false, 5 )返回5

但是为什么要console.log( false, {}, 5 );打印false Object {} 5

并且console.log( ( false, {}, 5 ) );甚至console.log( ( false, { i:0 }, 5 ) );两者都打印5。为什么5是首选{}

你可以在这里看到:http: //jsfiddle.net/3uUwY/

4

4 回答 4

6

逗号运算符始终返回最后一个元素,即 5。

于 2013-09-01T10:50:22.110 回答
1

通过放置括号,您只需对 console.log 进行一个参数。所以跟随

console.log( false, 5 ); // here you are using log function with 2 argumetns 

和这里

console.log( ( false, { i:0 }, 5 ) ); // here is only one argument.

在括号内,您使用的是逗号运算符。

逗号运算符总是返回最后一个表达式。

所以你可以像这样重写你的表达式:

var x = ( false, { i:0 }, 5 ); // x is 5 here
console.log( x );
于 2013-09-01T12:06:01.163 回答
1

使用括号时,您会强制 Javascript 评估该表达式。

console.log(a, b, c); // 3 parameters, the function prints a, b and c

console.log((a, b, c)); // 1 parameter. It prints the result of 
                        // evaluating (a, b, c) and, as it's said 
                        // in the other answer, it returns the last element
                        // of the expression.
于 2013-09-01T10:46:31.210 回答
1

通过放置括号,您只需对 console.log 进行一个参数。所以跟随

console.log( false, 5 ); // here you are using log function with 2 argumetns 

和这里

console.log( ( false, { i:0 }, 5 ) ); // here is only one argument.

在括号内,您使用的是逗号运算符。

逗号运算符总是返回最后一个表达式。

所以你可以像这样重写你的表达式:

var x = ( false, { i:0 }, 5 ); // x is 5 here
console.log( x );
于 2013-09-01T10:51:41.810 回答