空字符串(“”)如何在Javascript中调用函数?

我是编码的新手, javascript有时会有一些奇怪的语法.

我知道很多调用函数的方法,但是这个方法让我很感兴趣.

我查看了开发人员编写的代码,并推断出发生了什么,但无法理解.

通过在()中的函数定义旁边放置(“”)来调用函数.

(function functionName() {console.log("Hello")}) ("")
// Hello

(functionName)("")
// evaluates the function

我试过搜索,但在这里找不到.如果有人能解释这里发生了什么(这个概念),我将不胜感激.如果这个问题重复,请告诉我.谢谢.

最佳答案 您只需使用单个参数“”调用函数functionName.

如果你定义这样的函数:

function functionName() {console.log("Hello")}

那么这两个陈述是等价的:

functionName
(functionName)

当你输入

(function functionName() {console.log("Hello")})("")

您:

>定义匿名函数

>注意:因为它的声明周围有括号,所以函数的范围是受限制的.该功能将无法用于程序的其余部分.这意味着不会在下一行代码中定义functionName.

>评估函数(通过在函数定义周围加括号)
>调用函数,用一个参数“”

该函数不接受参数,那么为什么当我将参数传递给它时它才有效?

Javascript允许调用具有更多/更少参数的函数然后它们接受:

>如果参数太多(如我们的情况),则会丢弃额外的参数.在这种情况下,“”被丢弃.
>如果没有足够的参数,则它们是未定义的.

function test(a, b) { console.log(a + " " + b) }

test()              // undefined undefined
test("a")           // a undefined
test("a", "b")      // a b
test("a", "b", "c") // a b
点赞