代码改变世界

javascript 随笔—变量(1)

2012-10-24 16:04  前端小个  阅读(214)  评论(0编辑  收藏  举报

最经看了有很多关于全局变量跟局部变量的文章,自己在这方面也有点欠缺,所以做个笔记来方便自己以后阅读:

全局变量:就是在任何一个函数里都可以访问的变量,一般定义在开头顶部;或者在函数内部直接不声明var来定义的变量;

局部变量:就是定义在函数的内部;只能在本函数调用,在其他函数无法调用;例如:

<script type="text/javascript">

var a=0;//这里声明的是全局变量,位于script的最顶端;

function test(){

var b=1;//这里声明的是局部变量,位于函数内部;

c=2;//隐形的定义了全局变量(不推荐使用这方法);

text();

}

function text(){

alert(a);//a=0

alert(b);//undefined

alert(c);//c=2

}

test();

</script>

上面的函数中的b之所以为undefined,是因为它是局部变量;其余的为全局变量;

<script type="text/javascript">

a=1;

function test(){

alert(a);

var a=0;

alert(a);

}

test();

</script>

上面函数第一个弹出的是“undefined”,第二个弹出的是0;或许有些人有疑问,为什么第一个不是1呢,a不是作为全局变量吗;其实如果按照这样的思维来说的话,这种想法是合理的;但是javascript并不是这样工作的,原因在于下面定义了一个a的局部变量,所以再第一个alert之前没有声明a,所以他默认为是undefined;我们再来修改下:

<script type="text/javascript">

a=1;

function test(){

alert(a);

var b=0;或者是a=0;

alert(a);

}

test();

</script>

上面函数的修改就会弹出1,1或者是1,0;因为函数内部没有把a定义为局部变量,或者没有再次定义a,则会调用最顶部的。

for (var in obj)

主要是对数组或者对象的遍历。如:

<script type="text/javascript">

 

var i;
var tt={
name:"huangtenghui",
age:23,

};
for(i in tt){
alert(tt[i]);
}
</script>或者

<script type="text/javascript">

 

var i;
var tt=["w","d"];

for(i in tt){
alert(tt[i]);
}
</script>

上面两个函数都是遍历对象tt的内容。