今天分享javascript的变量作用域问题,以两个例子来对比说明。
案例一:
// 声明全局变量box
var box = 'blue';
function setColor(){
// 加上var字符,表明这里是声明一个局部变量box
var box = 'green';
}
setColor();
// 变量没有指明调用对象,默认是window对象调用,因此调用的就是全局的box变量,
// 虽然调用了setColor()方法,但是里面并没有改变全局box变量的值,结果是"blue"
alert(box);
案例二:
// 声明全局变量box
var box = 'blue';
function setColor(){
// 这里由于没有加var,因此是赋值语句,我们向外层寻找,发现是修改全局的box变量的值
box = 'green';
}
setColor();
// 变量没有指明,默认是window对象调用,因此结果是"green"
alert(box);
今天的两个对比案例非常经典而且简单易懂,改天会继续对javascript的一些特性进行深入研究,敬请期待。
大家可以关注我的微信公众号:iwork,我会每天推送一篇原创文章,让大家都能有所收获!