这几天公司的项目在进行前端改版,之前本来运行正常的页面在ios设备下居然奔溃了,错误的原因新加入的dom节点id名称和原有js全局变量名称冲突。
首先,按照HTML5的规范带有id和name属性的dom节点会在window下生成相应的属性,按照惯性思维我们会认为dom变量和js变量的作用域应该是一样的,就是后定义的变量覆盖先定义的同名变量,在pc端的谷歌、火狐浏览器都是这样的,不过移动端的ISO浏览器比较坑,全局js变量是无法dom变量的,当你定义的全局变量名称和dom中的id、name同名的时候就有可能出错,pc端苹果浏览器暂时没有测试。
总之项目中还是少用全局变量啦