<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Title</title>
</head>
<body>
<script type="text/javascript">
// 1:如何区分私有变量和全局变量 ?
// 1.1在全局作用域下声明(预解释的时候)的变量是全局变量
// 1.2在 "私有作用域中声明的变量" 和 "函数的形参" 都是私有的变量
// 在私有作用域中,我们代码执行的时候遇到了一个变量,首先需要确定他是否为私有变量,如果是私有变量.那么和外边的任何东西都没有关系:如果不是私有的则往当前作用域的上一个作用域查找,如果上级中也没有则继续查找,一直找到Window为止 ( 作用域链 )
// 2当函数执行的时候(直接目的:让函数体重的代码执行),首先会执行一个新的私有的作用域,然后按照如下的步骤执行
// 2.1如果有形参,先给形参赋值
// 2.2进行私有作用域中的预解释
// 2.3私有作用域中的代码从上到下执行
// 2.4函数形成了一个新的私有的作用域保护了里边的私有变量不收外界的干扰(外边修改不了私有的,私有的也影响不了外边的) -->"闭包"
// console.log(total); // undefined
// var total = 0;
// function fn(num1,num2) {
// console.log(total); // undefined
// var total = num1 + num2;
// console.log(total); // 300
// }
// fn(100,200);
// console.log(total); // 0
console.log(total); // undefined
var total = 0;
function fn(num1,num2) { // total不是私有的,找全局下的total,也就是这里边出现的total
console.log(total); // 0
total = num1 + num2; // 全局的total = 300;
console.log(total); // 300
}
fn(100,200);
console.log(total); // 300
</script>
</body>
</html>
02-作用域链
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- \如需转载请注明来源 1.作用域 作用域声明提前:1 带var的和函数不管位置在哪里,在作用域中都会被提到最前面进...