在浏览器中运行的js,要尽量避免使用全局变量,在这里记录下小坑一个。
上代码:
<div id="foo"></div>
// 注意这里
if (typeof foo === 'undefined') {
foo = 42 // 其实这里不会执行到的
}
console.log( foo ) // 这里的输出会是一个DOM对象
这里的坑就是,在创建带有id属性的DOM元素时也会创建同名的全局变量。
所以不要以为只有js才能创建全局变量,HTML代码在某些宿主环境里一不小心也会产生全局变量。
最后总结,尽量避免使用全局变量。