javascript定義函式後立即執行(IIFE)
阿新 • • 發佈:2020-08-08
Talk is cheap, show me the code.
// Immediately Invoked Function Expression - IIFE // 定義後立即執行的JavaScript函式。 // 基本語法,將函式定義在()內部,最後附加()執行函式。 // 一個小技巧,先寫下兩個(), 然後第一個()內新增函式定義,第二個()新增呼叫引數。 // 無引數的情況 (function () { console.log("I am running immediately after define"); })(); // 有引數的情況 (function(a, b) { console.log(a+ " + " + b + " = " + (a + b)); })(1, 2); // 使用箭頭函式,無參 (() => { console.log("IIFE with arrow function") })(); // 使用箭頭函式,有參。(如果箭頭函式體內只有一行程式碼,那麼return和{}可以省略) ((a, b) => console.log(a + b))(1, 2); // 變種寫法,第二個()也可以寫在第一個()內部結尾處,但是這種寫法不支援箭頭函式哦。 (function () { console.log("another way...") }());// 使用一元運算子也可以建立IIFE,這種寫法在實際應用中不常見。 !(function() { console.log("IIFE with !") })(); ~(function() { console.log("IIFE with ~") })(); +(function() { console.log("IIFE with +") })(); -(function() { console.log("IIFE with -") })(); // IIFE也可以為函式取名字,但是這個名字沒啥用,因為你不能使用名字呼叫該函式。 (function test() { console.log("IIFE with name..."); })(); // 為了防止合併javascript檔案出錯,有時候要在函式前面加分號,表示前面語句結束,這是一個新的開始。詳見https://www.cnblogs.com/daysme/p/6440012.html // 為什麼要合併js檔案呢?很多打包工具如webpack為了減少bundle體積,都會合並js檔案,形成一個大的chunk.js,大家都不陌生吧。 ;(function () { console.log("I am a new start"); })();
== The End ==