weijia_yu
我当时正在玩IIFE函数,但打错了它。将以下内容粘贴到控制台中,然后按Enter:
function A() {}("hello",6)
在控制台中,它打印6
。这是为什么?
费利克斯·克林
tl; dr:由于未执行,该函数不返回任何内容。
JavaScript解释器将解析为以下两个语句:
一个函数声明
function A() {}
后跟一个表达式语句
("hello",6)
表达式语句由分组运算符组成,其中包含逗号运算符,该运算符返回右操作数的结果6
。
如注释中所述,如果希望将此解释为IIFE,请将函数定义(或整行)用括号括起来:
(function A() {})("hello",6)
// or
(function A() {}("hello",6))
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
编辑于
我来说两句