js變量及其作用域

js變量作用域可分爲:"全局變量"和"局部變量"
"全局變量":申明在函數之外的變量
"局部變量":申明在函數體中的變量,並且只能在當前函數體內訪問,如:function(){var a = 0;}

注:在申明變量是凡是沒有var關鍵字,而直接賦值的變量均爲全局變量

1. 

function test() {  
           a = 30; 
          var b = 20;
     }
 test();
 console.log("a="+a); //這裏很明顯,a爲全局變量
 console.log("b="+b);//b爲局部變量,故在函數test外調用是,提示未定義

2.

var a = 1;
function test() {  
          console.log("a="+a); 
/*函數中聲明的變量在整個函數中都有定義。如果函數內部有定義變量,即使在定義之前輸出但會先執行後面定義語句,然後判斷輸出結果,所以說聲明的變量在整個函數中都是起作用的。*/
          var a = 2;
     }
 test();<pre name="code" class="html">//這裏a爲undefined


3.

var a; function fun() { a = "global"; } 
console.log(a);//輸出undefined 

var a; function fun() { a = "global"; } 
fun();
console.log(a);//輸出 global


4 函數域優先於全局域,故局部變量a會覆蓋掉全局變量a

var a=1;
function main(){
var a=2;//局部變量
console.log(a);//2
}
main();
console.log(a);//1




發佈了19 篇原創文章 · 獲贊 2 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章