讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:申請域名、網絡空間、營銷軟件、網站建設、太原網站維護、網站推廣。
Javascript中沒有塊級作用域的概念,這意味著在塊語句中定義的變量,實際上是在包含函數中而非語句中創建的
1 function outputNumbers(count){2 for (var i = 0; i < count; i++){3 console.log(i);4 }5 console.log(i);6 }
在for循環中定義的局部變量i可以再for循環外訪問,因為變量i是定義在outputNumbers()的活動對象中的,因此從它有定義開始,就可以在函數內部隨處訪問它。
1 function outputNumbers(count){2 for (var i = 0; i < count; i++){3 console.log(i);4 }5 var i;6 console.log(i);7 }
遇到這種情況,他只會對后續的聲明視而不見。匿名函數可以用來模仿塊級作用域并避免這個問題。
1 (function(){2 //這里是塊級作用域3 })();
以上代碼定義并立即調用了一個匿名函數。將函數聲明包含在一堆圓括號中,表示它實際上是一個函數表達式。而緊隨其后的另一對圓括號會立即調用這個函數。
注意:
1 function(){2 //這里是塊級作用域3 }(); //出錯
function關鍵字表示一個函數聲明的開始,而函數聲明后面不能跟圓括號。然而,函數表達式的后面可以跟圓括號。要將函數聲明轉換成函數表達式。
無論在什么地方,只要臨時需要一些變量,就可以使用私有作用域
1 function outputNumbers(count){2 (function(){3 for (var i = 0; i < count; i++){4 console.log(i);5 }6 })();7 console.log(i); //i is not defined8 }
這種技術經常用在全局作用域中被用在函數外部,從而限制向全局作用域中添加過多的變量和函數
1 (function(){2 var now = new Date();3 if (now.getMonth() == 0 && now.getDate() == 1){4 alert("Happy new year");5 }6 })();
其中now現在是匿名函數中的局部變量,而我們不必在全局作用域中創建它。
網頁名稱:函數表達式-模仿塊級作用域
轉載來源:http://m.kartarina.com/article20/pgodjo.html
成都網站建設公司_創新互聯,為您提供網站策劃、網站內鏈、網站收錄、ChatGPT、品牌網站建設、網站改版
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯