为什么匿名JavaScript函数中有0?

时间:2016-09-19 06:53:05

标签: javascript

已经看到了这种格式的许多用法:

(0, function(a, b){console.log(a + b)})(3, 4)

什么是0

2 个答案:

答案 0 :(得分:-1)

忽略0

该逗号是comma operator

  

逗号运算符计算每个操作数(从左到右)并返回最后一个操作数的值。

基本上0被评估为0,然后评估该函数表达式,因为该函数是逗号列表中评估的最后一个函数,所以返回对它的函数引用。这是被调用的返回函数。

在您问题的代码中,0因此完全没用。

然而,可能是作者想要这样做:

0,function(a, b){console.log(a + b)}(3, 4);

这可以节省输入两个字符(),但无论如何它都需要两个字符,所以它不是很有用。

答案 1 :(得分:-1)

它的作用与parenthesis or a bang prefix相同。

0是一个无效的表达式。 comma operator将右侧放在表达背景中。

这意味着function被视为函数表达式的开头(可以是IIFE)而不是函数声明(会引发错误)如果您尝试将其视为IIFE,此代码通过(3, 4)跟随它来执行此操作。