[英]javascript tricks. Why (a,b,c) => 5
。
var a,b,c = function() { return 5; };
变量a和b是未定义的,c是函数,为什么当我们这样做时(a,b,c)()我们有5?
因为(a,b,c)
评估为c
。
请参阅逗号运算符。 在C,C ++中以相同的方式工作。
声明与以下内容相同:
var a;
var b;
var c = function() { return 5; };
或几乎相同:
var a;
var b;
function c() { return 5; };
使用(a,b,c)
与声明无关,它只返回最后一个操作数,因此(a,b,c)()
与c()
完全相同(只要评估a和b不相同)没有任何副作用)。
我最近遇到了类似的谜题:
var f = function(a,b,c){
return a, b, {x:a+b, y:a+c}
}
并且f(1,2,3)
的结果是{x:3, y:4}
,所以我认为表达式(a,b,c)
总是求值为c
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.