生活随笔
收集整理的這篇文章主要介紹了
函数声明、函数表达式、匿名函数、立即执行函数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
函數聲明:function fnName () {…};使用function關鍵字聲明一個函數,再指定一個函數名,叫函數聲明。函數表達式 var fnName = function () {…};使用function關鍵字聲明一個函數,但未給函數命名,最后將匿名函數賦予一個變量,叫函數表達式,這是最常見的函數表達式語法形式。匿名函數:function () {}; 使用function關鍵字聲明一個函數,但未給函數命名,所以叫匿名函數,匿名函數屬于函數表達式,匿名函數有很多作用,賦予一個變量則創建函數,賦予一個事件則成為事件處理程序或創建閉包等等。 1 fnName();
2 function fnName(){
3 ...
4 }
5 //正常,因為‘提升'了函數聲明,函數調用可在函數聲明之前
6
7 fnName();
8 var fnName=
function(){
9 ...
10 }
11 //報錯,變量fnName還未保存對函數的引用,函數調用必須在函數表達式之后 1 var fnName=
function(){
2 alert('Hello World'
);
3 }();
4 //函數表達式后面加括號,當javascript引擎解析到此處時能立即調用函數
5 function fnName(){
6 alert('Hello World'
);
7 }();
8 //不會報錯,但是javascript引擎只解析函數聲明,忽略后面的括號,函數聲明不會被調用
9 function(){
10 console.log('Hello World'
);
11 }();
12 //語法錯誤,雖然匿名函數屬于函數表達式,但是未進行賦值操作,
13 //所以javascript引擎將開頭的function關鍵字當做函數聲明,報錯:要求需要一個函數名
( function(){…} )()和( function (){…} () ) 立即執行函數:減少閉包占用的內存,執行完即銷毀function被當做函數聲明的開始不能直接加圓括號,而函數表達式后面可以跟圓括號 1 (
function(a){
2 console.log(a);
//firebug輸出123,使用()運算符
3 })(123
);
4
5 (
function(a){
6 console.log(a);
//firebug輸出1234,使用()運算符
7 }(1234
));
8
9 !
function(a){
10 console.log(a);
//firebug輸出12345,使用!運算符
11 }(12345
);
12
13 +
function(a){
14 console.log(a);
//firebug輸出123456,使用+運算符
15 }(123456
);
16
17 -
function(a){
18 console.log(a);
//firebug輸出1234567,使用-運算符
19 }(1234567
);
20
21 var fn=
function(a){
22 console.log(a);
//firebug輸出12345678,使用=運算符
23 }(12345678)
?
==>參考自http://www.jb51.net/article/50967.htm
?
轉載于:https://www.cnblogs.com/NB-JDzhou/p/6932836.html
總結
以上是生活随笔為你收集整理的函数声明、函数表达式、匿名函数、立即执行函数的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。