- 什么是全局污染和重复声明?
function test () {
web = 'hello world'
}
这种不声明就直接赋值的变量就会直接成为全局变量,这就是全局污染。
而使用var来声明的变量也都会成为window的对象,这就是window的全局对象污染,要通过let,const来声明。
重复声明就是使用var同一个变量名时不会报错,这样导致前面的变量被覆盖,而let,const会直接报错提示。
2. 全局污染有什么问题?
会导致有隐患,当在其他地方再次应用这个变量时,值就不好控制。
3. 怎么解决全局污染?
通过使用var ,let , const来声明变量,让私有变量不再是全局变量,
为避免忘记使用,可以通过开启严格模式来强制提醒
"use strict"//直接扔到js里面就行
严格模式只会管理当前作用域自身以下的,哪怕是当前作用域自身以上的都约束不了,所以直接扔在开头就行。