什么是全局污染?
变量声明未使用var,这样变量成为了全局变量(挂载window),如果被第三方引入非常容易导致篡改。
启用严格模式('use strict')避免"全局"变量声明。
在多个脚本中,如果使用同一变量(或函数),与脚本加载顺序有关,后加载的脚本将会覆盖之前的同名变量,导致"作用域穿透"。


为了防止"作用域穿透",可使用立即执行函数或块作用域来解决,将变量限定在指定模块的作用域内生效。

变量声明未使用var,这样变量成为了全局变量(挂载window),如果被第三方引入非常容易导致篡改。
启用严格模式('use strict')避免"全局"变量声明。
在多个脚本中,如果使用同一变量(或函数),与脚本加载顺序有关,后加载的脚本将会覆盖之前的同名变量,导致"作用域穿透"。
为了防止"作用域穿透",可使用立即执行函数或块作用域来解决,将变量限定在指定模块的作用域内生效。
本文标题:JS-基础知识-全局污染与块作用域
本文链接:https://www.haomeiwen.com/subject/iqlwtktx.html
网友评论