JS中自動執行函數小結

請看如下兩個函數:函數

function a(){    
alert("a") 
}//函數1

var b= function(){     
alert("b") 
}//函數2

它們倆有何不一樣呢?翻開書,做者會告訴咱們,前者爲函數聲明,後者爲函數表達式。函數聲明做爲一種聲明,固然會在預編譯階級有所動做(聲明提早),而函數表達式則不會。另外一個區別是,函數聲明是語句,語句是沒有返回值,不能直接加一對括號讓它們執行,例如:spa

function a (){  
alert("a") 
}();//報錯

var b = function(){   
alert("b") 
}();//正確

糾正:給 function 外套一對括號就不報錯了,括號是表達式,是表達式就有返回值,因此能夠在後面加一對括號讓它們執行,例如:code

(function a (){   
alert("a") 
})();//沒有問題

另外,咱們知道,函數名的做用就是用來引用的,如今沒用了,咱們是否是能夠把它去掉呢?io

(function (){  
alert(arguments.callee) 
})();//彈出自身

注意:JS中的函數不主動調用時不會加載的時候運行的,下面兩種方法均可以:編譯

(function abc(){
alert(22);
})();//讓函數自動運行

function abc(){
alert(22);
}
abc();//讓函數自動運行
相關文章
相關標籤/搜索