运行 javascript 具有函数和 IIFE 的代码时的行为差异

difference on behavior when running javascript code with function and IIFE

所以让我们假设我有一个包含以下场景的 index.js 文件。该文件被导入到 index.html 文件中,它将触发该文件中的内容。我可以期望以下代码片段表现不同或表现相同吗?我看到了相同的结果,但不妨问一下 :)

场景一

(() => {
  navigator.serviceWorker.register("sw.js").then(() => {
    console.log('sw registered');
  });
})();

scaneario 2

registerServiceWorker();

function registerServiceWorker() {
   navigator.serviceWorker.register("sw.js").then(() => {
        console.log('sw registered');
   });
}

场景三

navigator.serviceWorker.register("sw.js").then(() => {
    console.log('sw registered');
});

当然 - 它们的行为相同。您可能出于各种原因选择一个或另一个,这可能取决于代码的上下文以及您期望代码如何发展。例如,如果可能需要重新使用该函数,那么您会选择命名函数方法。不过,我看不出 (1) 的丑陋冗长有多大意义。