js代码执行顺序/全局&私有变量/作用域链
<script>
/*
浏览器提供全局作用域(js执行环境)(栈内存)
--> 1,预解释(仅带var的可以): 声明+定义
1.普通变量: 仅声明
2.函数的预解释 声明+定义
--> 2,代码从上到下执行
函数的执行
- 1.形参赋值
- 2.进行私有作用域预解释
- 3.私有作用域代码从上到下执行
全局变量: 在全局环境中(预解释产生的变量)
私有变量:
- 1. 在私有作用域重声明的变量
- 2. 函数的形参
作用域链: 私有作用域 (无变量)-->往上查找--> 直到windows为止.
闭包: 函数执行时候,形成私有作用域,保护里面的私有变量不受外界干扰.
*/
console.log(total);
var total = 0;
function fn(num1, num2) {
console.log(total);
total = num1 + num2;
console.log(total);
}
fn(100, 200);
console.log(total);
</script>