這種叫自執行函式表示式在這種情況下,解析器在解析function關鍵字的時候,會將相應的程式碼解析成function表示式,而不是function宣告。// 下面2個括弧()都會立即執行(function () { /* code */ } ()); // 推薦使用這個(function () { /* code */ })(); // 但是這個也是可以用的// 由於括弧()和JS的&&,異或,逗號等運算子是在函式表示式和函式宣告上消除歧義的// 所以一旦解析器知道其中一個已經是表示式了,其它的也都預設為表示式了var i = function () { return 10; } ();true && function () { /* code */ } ();0, function () { /* code */ } ();// 如果你不在意返回值,或者不怕難以閱讀// 你甚至可以在function前面加一元運算子號!function () { /* code */ } ();~function () { /* code */ } ();-function () { /* code */ } ();+function () { /* code */ } ();
這種叫自執行函式表示式在這種情況下,解析器在解析function關鍵字的時候,會將相應的程式碼解析成function表示式,而不是function宣告。// 下面2個括弧()都會立即執行(function () { /* code */ } ()); // 推薦使用這個(function () { /* code */ })(); // 但是這個也是可以用的// 由於括弧()和JS的&&,異或,逗號等運算子是在函式表示式和函式宣告上消除歧義的// 所以一旦解析器知道其中一個已經是表示式了,其它的也都預設為表示式了var i = function () { return 10; } ();true && function () { /* code */ } ();0, function () { /* code */ } ();// 如果你不在意返回值,或者不怕難以閱讀// 你甚至可以在function前面加一元運算子號!function () { /* code */ } ();~function () { /* code */ } ();-function () { /* code */ } ();+function () { /* code */ } ();