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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了变量作用域问题,全局变量污染相关的知识,希望对你有一定的参考价值。

<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>

以上是关于变量作用域问题,全局变量污染的主要内容,如果未能解决你的问题,请参考以下文章

25.函数例题-预解析 作用域 函数变量优先级全局变量污染(直接在全局声明 函数里的变量没声明)但是函数里的变量没声明造成的全局变量污染有个前提,函数要被调用)

九 作用域与闭包

2019.8.2闭包,作用域

警惕javascript变量的全局污染

闭包的简单理解

Js基础27:作用域