Javascript - console.log方法问题中的括号

时间:2013-09-01 10:44:03

标签: javascript

This post激励了我。我做了一些测试。

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 个答案:

答案 0 :(得分:6)

comma operator始终返回最后一个元素,即5。

答案 1 :(得分: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.

答案 2 :(得分:1)

通过放置brakets,你只能为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.

在使用逗号运算符的bralas中。

comma operator总是返回最后一个表达式。

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

var x = ( false, { i:0 }, 5 ); // x is 5 here
console.log( x );

答案 3 :(得分:1)

通过放置brakets,你只能为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.

在使用逗号运算符的bralas中。

comma operator总是返回最后一个表达式。

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

var x = ( false, { i:0 }, 5 ); // x is 5 here
console.log( x );