今天分享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,我會每天推送一篇原創文章,讓大家都能有所收穫!