立即執行函式沒有函式宣告,在一次執行過後即釋放,適合做初始化工作。
(function() ());
據說立即執行函式並不是標準裡專門定義的有這樣乙個語法來寫這樣乙個函式,而是程式設計師們根據需求自己鼓搗出來的。
理解立即執行函式之前先要了解兩個概念:
只有表示式才能被執行符號()
執行;
能被執行符號執行的表示式,這個函式的名字就會被自動忽略。
正常情況下,定義乙個函式
function test()
列印這個函式
console.log(test);
// ƒ test()
執行這個函式
test(); // 123
立即執行函式
function test() ();
// 報錯 uncaught syntaxerror: unexpected token )
那這樣呢
function test() (1, 2, 3);
// 不會報錯,但是也不會輸出任何結果
所以第二段**瀏覽器是這樣理解的:
function test()
(1, 2, 3);
上面我們說過:1. 只有表示式才能被執行符號( 『()』 )執行;
神奇的一刻(正號)
+function test() (); // 123
負號也可以
-function test() (); // 123
非也可以
!function test() (); // 123
括號也可以
(function test() )(); // 123
(function test() ()); // 123
以上**執行完成後再列印函式
console.log(test); // uncaught referenceerror: test is not defined
這就是上面說的第二點:2. 能被執行符號執行的表示式,這個函式的名字就會被自動忽略。
因為執行一次就被釋放了,所以寫不寫名字意義不大。最後就變成了下面這樣:
(function() ());
立即執行函式
函式宣告 函式表示式 匿名函式 函式宣告 function fnname 使用function關鍵字宣告乙個函式,再指定乙個函式名,叫函式宣告。函式表示式 var fnname function 使用function關鍵字宣告乙個函式,但未給函式命名,最後將匿名函式賦予乙個變數,叫函式表示式,這是最...
立即執行函式
一 立即執行函式 立即執行函式,顧名思義,就是能立即執行的函式 一般的,函式的執行都遵循著先宣告,後呼叫的原則,無論是函式表示式還是函式宣告 1 函式宣告 宣告 function sayhello 呼叫 sayhello hello 2 函式表示式 宣告 var sayhello function ...
立即執行函式
針對初始化功能的函式 好處 執行一次之後就銷毀,不占用空間,立即執行函式依然可以有返回值 基本形式 function 建議使用這種寫法 function 數學符號優先順序比較高,第一種方法的原因就是這樣,會先執行裡面的 括號的優先順序比較低 只有表示式才能被執行 function test 函式宣告...