javascript變數汙染簡單介紹
在強型別語言中,可以有效的防止變數汙染,因為在同一作用域內,不允許重複宣告同名變數。
但是在javascript中並沒有這個強制要求。
當然在ES6中也不允許使用let和const在同一作用域內宣告重複變數和常量。
暫時先不考慮ES6的let和const;在javascript中,如果宣告一個變數以後,又在同一作用於宣告重複的變數,那麼就會忽略後面的宣告,如果後面宣告的變數賦值,那麼這個值會被賦值給第一個宣告的變數。所以如果在同一個作用域內已經宣告瞭一個變數,那麼後面再投放同一個名稱的變數的話,就會產生一些列的問題。程式碼例項如下:
[JavaScript] 純文字檢視 複製程式碼var webName = "螞蟻部落"; function done() { console.log(webName); } var webName = "antzone"; done();
上面程式碼中,輸出結果是"antzone",說明產生了汙染。
這種現象尤其是在團隊開發,且命名比較複雜的時候容易產生。
下面簡單介紹一下如何避免此種問題:
使用匿名函式模擬塊級作用域:
[JavaScript] 純文字檢視 複製程式碼(function(){ var dom=document.getElementById("test"); dom.addEventListener("click",function(){ console.log("www.softwhy.com"); },false) })()
如果僅僅是為了完成某個單純的操作,使用匿名自執行函式是個良好的選擇。[
函式執行完畢之後,記憶體釋放,變數不會對外界產生汙染。
使用名稱空間的方式:
[JavaScript] 純文字檢視 複製程式碼var antzoneObj={}; (function (ant) { var dom=document.getElementById("antzone"); dom.addEventListener("click",function(){ console.log("www.softwhy.com"); },false); ant.age=4; ant.show = function () { console.log("螞蟻部落"); } })(antzoneObj) antzoneObj.show();
相關文章
- javascript 變數簡單介紹JavaScript變數
- javascript變數宣告簡單介紹JavaScript變數
- javascript變數作用於簡單介紹JavaScript變數
- javascript變數宣告提升簡單介紹JavaScript變數
- JavaScript 變數汙染JavaScript變數
- javascript將浮點數數變為整數簡單介紹JavaScript
- javascript函式和變數宣告提前簡單介紹JavaScript函式變數
- 簡單介紹nginx 變數使用Nginx變數
- javascript函式讀取變數作用域簡單介紹JavaScript函式變數
- JavaScript 簡單介紹JavaScript
- 簡單介紹克隆 JavaScriptJavaScript
- javascript物件簡單介紹JavaScript物件
- javascript this指向簡單介紹JavaScript
- javascript加密簡單介紹JavaScript加密
- 簡單介紹SQLserver中的declare變數用法SQLServer變數
- 簡單介紹JavaScript閉包JavaScript
- JavaScript希爾排序簡單介紹JavaScript排序
- javascript constructor簡單介紹JavaScriptStruct
- javascript建立物件簡單介紹JavaScript物件
- javascript的this用法簡單介紹JavaScript
- javascript arguments用法簡單介紹JavaScript
- javascript簡單模板引擎介紹JavaScript
- javascript作用域簡單介紹JavaScript
- javascript動態改變元素css樣式簡單介紹JavaScriptCSS
- javascript函數語言程式設計簡單介紹JavaScript函數程式設計
- 簡單介紹Linux環境變數檔案Linux變數
- JavaScript return語句簡單介紹JavaScript
- javascript鏈式呼叫簡單介紹JavaScript
- javascript除法運算簡單介紹JavaScript
- javascript &&和||運算子簡單介紹JavaScript
- javascript方法過載簡單介紹JavaScript
- javascript遞迴概念簡單介紹JavaScript遞迴
- JavaScript this指向解綁簡單介紹JavaScript
- javascript陣列操作簡單介紹JavaScript陣列
- javascript with()語句用法簡單介紹JavaScript
- javascript匿名函式簡單介紹JavaScript函式
- javascript的in運算子簡單介紹JavaScript
- javascript氣泡排序簡單介紹JavaScript排序