JavaScript全局变量与局部变量实验

原创 2015年07月08日 17:28:50

首先看个测试题

第一种情况:

var a=2;
function test(){
    console.log(a);
    var a=3;
    console.log(a);
};
test();
console.log(a);

输出结果:

undefined
3
2
变量与函数内的变量重名,那它将会失去全局变量的身份,相当于重新定义了一个变量 ,但是开始是并没有复制,所有是 undefined,第二个输出结果就很常规了,第三个输出结果调用的是全局变量。

第二种情况:

var a=2;
function test(){
    console.log(a);
};
test();

输出结果:
2

var a=2;
function test(){
    console.log(window.a);
    var a=3;
    console.log(a);
};
test();

输出结果:
2
3
使用window调用全局变量a

第四种情况:

var a=2;
function test(){
    console.log(a);
     a=3;
    console.log(a);
};
test();
console.log(a);

输出结果
2
3
3

第五种情况:

function test(){
console.log(a);
  a=3;
console.log(a);
};
test();
console.log(a);

输出结果:
3
3
3

JavaScript加载时会加载函数内部数据(具体什么原因,现在我也不懂,如有人知道,可以告诉我),因为 a=3;此种定义方式会将a定义成全局变量。

第六种情况:

function test(){
console.log(a);
 var  a=3;
console.log(a);
};
test();
console.log(a);

输出结果:
undefined
3
3

复习一下JavaScript中变量的
JavaScript中的变量是松散类型的,可以用来保存任何类型的数据,每个变量仅仅是一个用于保存至的占位符而已。

var a;//为经过初始化的变量,保存一个特殊值–undefined

b=10;//在JavaScript中有效,只是不推荐
注意: 如果使用此方式在函数内定义变量,将会成为一个全局变量。

OK,这下可以回过头去看看上面的问题了。

版权声明:本文为博主原创文章,未经博主允许不得转载。

面试题之JavaScript 的全局变量与局部变量

先看一道面试题问:如下代码结果是? var a = 100 ; function test() { alert(a) ; var a = 10 ; alert(a) ;...
  • wenteryan
  • wenteryan
  • 2016年05月23日 11:18
  • 1658

js中变量的声明,及全局变量和局部变量

1、变量一般用var 声明 2、全局变量不能用var 声明,用var 声明的变量是局部变量 3、全局变量可以在声明的函数外调用,局部变量不能再函数外调用。 代码说明: ...
  • xuehyunyu
  • xuehyunyu
  • 2017年06月11日 10:32
  • 329

轻松理解javascript中的局部变量与全局变量以及this的问题

javascript有两种变量:局部变量和全局变量。当然,我们这篇文章是帮助大家真正的区别这两种变量。 首先,局部变量是指只能在本变量声明的函数内部调用。全局变量时整个代码中都可以调用的变量。当...
  • dihuiqin
  • dihuiqin
  • 2016年08月18日 13:53
  • 510

跟我学JavaScript--作用域,局部变量,全局变量,变量生命周期

作用域: 作用域是可访问变量,对象,函数的集合 JavaScript函数作用域:变量在声明它们的函数体以及这个函数体嵌套的任意函数体内都是有定义的 如.//此处不能调用car变量function my...
  • panlu666_pl
  • panlu666_pl
  • 2017年04月18日 23:49
  • 843

js局部变量和全局变量的区别

var的规则是: 使用var声明变量就是内部变量, 否则就是先调用全局变量, 不管多少层函数. this的规则是: method函数里的this永远指向自身, 普通函数的this永远指向DOMW...
  • web_note
  • web_note
  • 2016年10月11日 19:02
  • 530

局部变量和全局变量的区别

局部变量可以与全局变量重名,但是局部bianl
  • cgl1079743846
  • cgl1079743846
  • 2014年05月29日 09:20
  • 38143

JAVA基础之局部变量与全局变量以及成员变量的区别

局部变量 定义:在方法内定义的变量称为“局部变量”或“临时变量”,方法结束后局部变量占用的内存将被释放。 全局变量 定义:全局变量,又称“外部变量”,它不是属于哪个方法,作用域从定义的地址开始到...
  • qq_21806621
  • qq_21806621
  • 2017年03月15日 22:33
  • 1428

局部变量能否和全局变量重名?

首先,变量包括两个方面,类型和名称。比如 double d = 0; void f() { int d = 5; double b = d; //全局变量,因此全局变量的类型更匹配 } 这种情况两...
  • jimeshui
  • jimeshui
  • 2014年11月12日 01:54
  • 1257

全局变量和局部变量同名时操作

java值传递在java变量运算中很重要,也是理解Java一个重要的基础,所以建议了解一下值传递。...
  • ANNILingMo
  • ANNILingMo
  • 2015年09月11日 16:43
  • 700

js的局部变量和全局变量的定义形式举例

无标题文档 var n=10;m=100;//全局变量 任何地方都可以使用 function demo(){ var i=10;//局部变量 只能在当前函数中使用 ...
  • u012110719
  • u012110719
  • 2015年09月02日 00:28
  • 1367
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JavaScript全局变量与局部变量实验
举报原因:
原因补充:

(最多只允许输入30个字)