全域性DOM變數的坑

VitoLI發表於2018-08-22

在瀏覽器中執行的js,要儘量避免使用全域性變數,在這裡記錄下小坑一個。


上程式碼:

<div id="foo"></div>

// 注意這裡
 if (typeof foo === 'undefined') {
     foo = 42 // 其實這裡不會執行到的
 }
 
 console.log( foo ) // 這裡的輸出會是一個DOM物件
複製程式碼

這裡的坑就是,在建立帶有id屬性的DOM元素時也會建立同名的全域性變數

所以不要以為只有js才能建立全域性變數,HTML程式碼在某些宿主環境裡一不小心也會產生全域性變數。

最後總結,儘量避免使用全域性變數。

相關文章