javascript中 (function(){})();如何理解?
javascript中: (function(){})()是匿名函數,主要利用函數內的變量作用域,避免產生全局變量,影響整體頁面環境,增加代碼的兼容性。
(function(){})是一個標准的函數定義,但是沒有復制給任何變量。所以是沒有名字的函數,叫匿名函數。沒有名字就無法像普通函數那樣隨時隨地調用了,所以在他定義完成后就馬上調用他,后面的括號()是運行這個函數的意思。
擴展資料
函數聲明:使用function聲明函數,並指定函數名。
function setFn() { // coding }
函數表達式:使用function聲明函數,但未指定函數名,將匿名函數賦予一個變量。
var setFn = function() { // coding}
匿名函數:使用function關鍵字聲明函數,但未指定函數名。匿名函數屬於函數表達式,匿名函數有很多作用,賦予一個變量則創建函數,賦予一個事件則成為事件處理程序或創建閉包等等。
function() { // coding}
javascript中function前面加(/!/+/-/~的含義
自執行匿名函數 常見格式:(function(){ /* code */ })(參數);
- 作用:可以用它創建命名空間,只要把自己的所有代碼都寫在這個特殊的函數包裝內,那么外部就不能訪問,除非你允許(變量前加上window,這樣該函數后變量就成為全局)。各JavaScript庫的代碼也基本上是這種組織形式。
- 執行函數的作用主要為匿名和自動執行,代碼在被解釋時就已經在運行了。
+function(){}();
這里的加號,可以替換成 ~ , * , + , - , ! 等其他一元操作符,
其效果相當於:
(function() { console.log(“Foo!”); })();
// or
(function() { console.log(“Foo!”); }());
如果沒有這個加號的話,解析器會認為function是一個函數聲明的開始,而后面()將會導致語法錯誤。
在function前面加上+號時,就變成了一個函數表達式,而函數表達式后面又添加了一個()就變成了一個立即執行的函數了。