javascript - 为什么这个错误的 IIFE 函数返回这个

标签 javascript

我在玩 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/

相关文章:

javascript - d3.js 中的 3 个数组 - 如何调用其他数组?

javascript - Jquery:在第二行定位文本节点的一部分

javascript - 如何更改 AMP HTML 中的当前网址?

javascript - AngularJS + Android 4.2 : very slow to react

javascript - 在 NativeScript 中在 "Text - Link"上设置标签

javascript - AngularJS 无法识别 Controller

javascript - 使div点击后消失

javascript - 如何.catch a Promise.reject

javascript - vue js 无法理解 keep alive

javascript - 在 ECMAScript5 中, "use strict"的范围是什么?