全局DOM变量的坑

409 阅读1分钟

在浏览器中运行的js,要尽量避免使用全局变量,在这里记录下小坑一个。


上代码:

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

// 注意这里
 if (typeof foo === 'undefined') {
     foo = 42 // 其实这里不会执行到的
 }
 
 console.log( foo ) // 这里的输出会是一个DOM对象

这里的坑就是,在创建带有id属性的DOM元素时也会创建同名的全局变量

所以不要以为只有js才能创建全局变量,HTML代码在某些宿主环境里一不小心也会产生全局变量。

最后总结,尽量避免使用全局变量。