全局變量和局部變量


前言:大家好~我是阿飛~。搞清楚變量的作用域至關重要哦。否則會被坑死的。好消息是這個不難,很容易理解掌握。

變量的作用域

1. 全局變量 定義在函數外部 (函數內部可以使用)

2. 局部變量 定義在函數內部 (函數外部不能使用)

3. 不加var 不管是函數內還是函數外部 都屬於全局變量(強烈反對函數內使用不加var的全局變量!誰用誰sb~)另外嚴格模式'use strict'會報錯。

4. 函數內添加形參可以使 全局變量轉變局部變量

5. 優先使用局部變量 再使用全局

6. for while if 分支語句 都是全局變量!

全局變量

    var index = 100;  //全局變量
function demo(){
console.log(index);//由此可見函數內部可以獲取到外部的index
}
demo();//打印100;

tips:在函數外部 定義變量時候即使不寫var 也可以!

    index = 100;  //全局變量
function demo(){
console.log(index);//由此可見函數內部可以獲取到外部的index
}
demo();//打印100;

局部變量

    例1:
function show(){
var myindex = 1000; //局部變量
}
show();
console.log(myindex) //無法獲取 報錯!


例2:
function show(){
var myindex = 1000; //局部變量
console.log(myindex) //打印 1000
}
show();

全局變量污染

    function demo1(){
index = 1000; //由於沒有寫var 此時函數內的index變全局變量
}
demo1();
console.log(index) //打印1000

tips:切記函數內的變量都需要加var!!!如果不寫var則變成全局變量,雖然感覺挺方便,可以隨便獲取,但是這樣會埋下坑,今后合作開發時候肯定會被人噴出翔來的。。。。

形參使全局變局部

    function demo1(index){   //此刻形參的值=index
index = 1000; //所以此刻index變成了局部變量
}
demo1();
console.log(index) //外部無法獲取 報錯!

優先使用局部變量 再使用全局

    例1:
var index = 100;
function demo(){
var index = 90;
console.log(index);
}

demo(); //優先使用局部變量 再使用全局


例2:
var myindex = 200;
function show(){
var myindex = 100;
return function(){
console.log(myindex);
}
}
show()();// 打印 100
//此時var myindex = 100; 相對於return的內部的函數是全局的


例3:
var myindex = 200;
function show(){
var myindex = 100;
return function(){
var myindex = 50;
console.log(myindex);
}
}
show()(); // 打印 50;

for while if 分支語句 都是全局變量!

    for (var i = 1; i <= 1; i++) {
var index1 = "農婦三拳";
}
if (true) {
var index2 ="農夫三拳"
}
console.log(index1)//打印 農婦三拳
console.log(index2)//打印 農夫三拳

ok~差不多應該了解了吧。
最后讓我們搞點事情,做些搞事情的練習題吧。親^_^
點擊下方鏈接即可
http://www.cnblogs.com/anduyinglufei/p/7442267.html


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
  © 2014-2022 ITdaan.com