变量作用域问题,全局变量污染

<script>
function fun1(){
max = 5;//注意 此处max虽在函数内,但没var声明
}
fun1();
//这里调用fun1()相当于在全局var了一个max变量
function fun2(){
max = 10;//此处更改了全局变量max,fun()1中的max也被更改,就是全局变量被污染。fun1()变量被污染的根源是因为他没保护好自己的变量max,如果函数内要声明被保护的变量必须加var,不可能在方法外改变方法内的变量,只能向上爬树
}
fun2();
//fun2()调用完,全局内有一个max,值为10
</script>

原文地址:https://www.cnblogs.com/songleyi/p/5930489.html