javascript技巧.为什么(a,b,c)=> 5

ant*_*rna 3 javascript

.

var a,b,c = function() { return 5; };
Run Code Online (Sandbox Code Playgroud)

变量a和b是未定义的,c是函数,为什么当我们这样做时(a,b,c)()我们有5?

Ale*_*ski 10

因为(a,b,c)评估到c.

请参阅逗号运算符.在C,C++中以相同的方式工作.


Guf*_*ffa 5

声明与以下内容相同:

var a;
var b;
var c = function() { return 5; };
Run Code Online (Sandbox Code Playgroud)

或几乎相同:

var a;
var b;
function c() { return 5; };
Run Code Online (Sandbox Code Playgroud)

使用(a,b,c)与声明无关,它只返回最后一个操作数,因此(a,b,c)()完全相同c()(只要评估a和b没有任何副作用).

  • `c = function(){...}`*不是*与`function c(){...}`相同! (4认同)