gpt4 book ai didi

javascript - 函数前的感叹号有什么作用?

转载 作者:行者123 更新时间:2023-12-04 00:56:17 27 4
gpt4 key购买 nike

!function () {}();

最佳答案

JavaScript 语法 101:这是一个函数声明:

function foo() {}

请注意没有分号;这只是一个函数声明。您需要调用 foo() 才能实际运行该函数。

现在,当我们添加看似无害的感叹号时:!function foo() {} 会将它变成一个表达式。它现在是一个函数表达式

! 本身当然不会调用该函数,但我们现在可以将 () 放在末尾:!function foo() { }(),它的优先级高于 ! 并立即调用该函数。

function foo() {}() 将是一个语法错误,因为您不能在函数声明之后立即放置参数 (())。

所以作者所做的是为每个函数表达式保存一个字节;一种更具可读性的写作方式是这样的:

(function(){})();

最后,! 使表达式根据函数的返回值返回一个 bool 值。通常,立即调用的函数表达式 (IIFE) 不会显式返回任何内容,因此它的返回值将是 undefined,这给我们留下了 !undefined。未使用此 bool 值。

关于javascript - 函数前的感叹号有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5654074/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com