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的内容。