码迷,mamicode.com
首页 > 其他好文 > 详细

变量与作用域

时间:2016-11-10 19:17:32      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:语句   变量   没有   功能   alert   tco   if语句   传参   代码   

一、var box="blue";
function setColor(){
return 123;
}
alert(box);==alert(window.box); ---blue //全局变量属于window的属性
alert(setColor());==alert(window.setColor()); ---123 //全局函数属于window的方法

二、var box="blue";
function setColor(){
var box="red";
}
setColor();
alert(box);---blue //因为setColor函数是在window全局作用局下的方法,所以,alert出来的也是全局下的变量。

var box="blue";
function setColor(){
box="red"; //去掉了var,这个变量就是全局变量了
}
setColor();
alert(box);---red

三、var box="blue";
function setColor(box){
alert(box);----red //传参也是局部变量
}
setColor("red");
alert(box);---blue

四、作用域链,函数体内还包含着函数,只有这个函数才可以访问内一层的函数。

function setBox() {

function setColor() {
return 123;
}
}
alert(setColor());会报错,因为setColor()方法的作用域在setBox(),而不是window内。那怎么调用setColor呢:
function setBox() {

function setColor() {
return 123;
}
return setColor();
}
alert( setBox());这样就可以了

但是if语句的花括号等代码块没有作用域的功能,也就是说它们可以通过window全局去访问的。

变量与作用域

标签:语句   变量   没有   功能   alert   tco   if语句   传参   代码   

原文地址:http://www.cnblogs.com/annie211/p/6051817.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!