我在玩 IIFE 函数时输入错误。将以下内容粘贴到您的控制台中,然后按回车键:
function A() {}("hello",6)
在控制台中,它打印 6
。这是为什么?
最佳答案
tl;dr:该函数不会返回任何内容,因为它没有被执行。
JavaScript 解释器将转到 parse this as two statements :
函数声明
function A() {}
后跟表达式语句
("hello",6)
表达式语句由grouping operator组成, 包含 comma operator它返回右操作数的结果,即6
。
如评论中所述,如果您希望将其解释为 IIFE,请将函数定义(或整行)括在括号中:
(function A() {})("hello",6)
// or
(function A() {}("hello",6))
关于javascript - 为什么这个错误的 IIFE 函数返回这个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55698338/