【发布时间】:2018-10-21 13:47:38
【问题描述】:
var a =(3,4,7);
console.log(a); // Output is 7
您能解释一下我们是如何得到输出 7 的吗?
【问题讨论】:
-
显然是在输出最后一个值...Comma operator
-
你期望得到什么?
标签: javascript
var a =(3,4,7);
console.log(a); // Output is 7
您能解释一下我们是如何得到输出 7 的吗?
【问题讨论】:
标签: javascript
称为逗号运算符。通过将右手表达式括在括号中,我们创建了一个组,并对其每个操作数进行求值并返回最后一个值。
来自MDN
逗号运算符计算其每个操作数(从左到右) 并返回最后一个操作数的值。
当你想写一个minifier并且需要压缩代码时,逗号操作符很有用。
例如,
print = () => console.log('add')
add_proc = (a,b) => a + b
function add(a, b){
if(a && b){
print();
return add_proc(a,b)
}
else
{
return 0
}
}
console.log(add(1,2));
可以使用comma operator 缩小如下:
print = () => console.log('add')
add_proc = (a,b) => a + b
add = (a, b)=> a && b ?(print(),add_proc(a, b)):0
console.log(add(1,2));
【讨论】:
逗号运算符计算其每个操作数(从左到右)并返回最后一个操作数的值。
在这里,分隔每个数字 Ans 因为它是一个变量,所以它存储 3 然后与 4 重叠,最后是 7 所以最终输出是 7
【讨论】: