javascript變量作用域
品牌型號:聯想小新Pro13/系統版本:windows10
在es5中變量作用域分為兩種:全局變量,局部變量;
作用域説明:指一個變量的作用範圍
局部變量:寫在函數體內部,其中函數中所傳遞的參數也是局部變量(小括號中的),僅在定義的部分能夠使用;
全局變量:寫在函數體外部的變量,其中在函數中使用但未用var聲明的變量也是全局變量,可以在全局中任何部分使用;
全局變量
(1)直接聲明
var a = 10; console.log(a) // 10
(2)在{ }中聲明
var b=4; if(b>5){ var c=9; }else{ console.log(b) // 4 } console.log(c) // undefined <P>提升後P> var b=4; var c; if(b>5){ c=9; }else{ console.log(b) // 4 } console.log(c) // undefined
(3)在函數體中使用但並未聲明
function demo(){ a = 10; } console.log(a); // 報錯 demo(); console.log(a); // 10 <P>相當於:P> var a; function demo(){ a = 10; } console.log(a); // undefined demo(); console.log(a); // 10
局部變量
局部變量僅僅在聲明的部位能夠調用,其他位置不能訪問。
(1)在函數體內部聲明
function demo(){ var a = 10; console.log(a) // 10 } console.log(a); // 報錯 demo(); console.log(a); // 報錯
(2)在函數體內部聲明中的參數
function demo(a){ a = 10; console.log(a) // 10 } console.log(a); // 報錯 demo(); console.log(a); // 報錯