已经看到了这种格式的许多用法:
(0, function(a, b){console.log(a + b)})(3, 4)
什么是0
?
答案 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)
跟随它来执行此操作。