荆州网站建设,网站建设作用 名词解释,网站外链收录很多 内链收录几个,上海市建设安全协会网站查询系统瘫以此文作为自己学习的一个总结。 关于全局变量和局部变量的一句简单的定义#xff1a;在函数外声明的变量都为全局变量#xff0c;在函数内声明的为局部变量。 一、局部变量和全局变量重名会覆盖全局变量 1 var a 1;
2 function test1() {
3 var a 2;
4 ale… 以此文作为自己学习的一个总结。 关于全局变量和局部变量的一句简单的定义在函数外声明的变量都为全局变量在函数内声明的为局部变量。 一、局部变量和全局变量重名会覆盖全局变量 1 var a 1;
2 function test1() {
3 var a 2;
4 alert(a);
5 }
6 test1();// 2 这里的函数中的定义的a是局部变量它的作用域为函数{}之间函数外定义的a为全局变量它的作用域为整个程序描述有点不准确。在函数中的局部变量和全局变量重名局部变量会覆盖全局变量。 二、提到全局变量与局部变量不得不说明的一个知识点就是变量提升(这是一个坑)。‘与C/C逐行执行代码不同JS引擎的工作方式是先获取所有被声明的变量再逐一执行所有变量的声明语句都会被提升到当前代码块的头部’。注代码块指的是function的一个{}通常的if、while、for的{}中变量不会提升。 了解了变量提升了之后我们用以下代码来演示 1 var a 1;
2 function test1() {
3 alert(a);
4 var a 2;
5 alert(a);
6 }
7 test1();
8 alert(a);//undefined 2 1 为什么结果不是1 2 1呢原因就在于代码提升。由于代码提升的效果所以实际执行的代码是这样的: 1 var a 1;
2 function test1() {
3 var a//局部变量与全局变量重名时会覆盖全局变量此时的a只有声明却未定义
4 alert(a);//所以执行alert值为undefined
5 a 2;
6 alert(a);
7 }
8 test1();
9 alert(a);//undefined 2 转载于:https://www.cnblogs.com/wind-lanyan/p/wind-lanyan.html