在瀏覽器中執行的js,要儘量避免使用全域性變數,在這裡記錄下小坑一個。
上程式碼:
<div id="foo"></div>
// 注意這裡
if (typeof foo === 'undefined') {
foo = 42 // 其實這裡不會執行到的
}
console.log( foo ) // 這裡的輸出會是一個DOM物件
複製程式碼
這裡的坑就是,在建立帶有id屬性的DOM元素時也會建立同名的全域性變數。
所以不要以為只有js才能建立全域性變數,HTML程式碼在某些宿主環境裡一不小心也會產生全域性變數。
最後總結,儘量避免使用全域性變數。