1.全局作用域 JavaScript中,在{}外面的作用域,我們就稱之為全局作用域 2.局部作用域 JavaScript中,在函數後面{}中的作用域,我們就稱之為局部作用域 3.塊級作用域 JavaScript中,只要是沒有和函數結合在一起的{}中的作用域, 我們就稱之為塊級作用域 4.註意點 在塊 ...
1.全局作用域
JavaScript中,在{}外面的作用域,我們就稱之為全局作用域
//全局作用域
var num1 = 123;
let num2 = 456;
if(...){
...
}
2.局部作用域
JavaScript中,在函數後面{}中的作用域,我們就稱之為局部作用域
//局部作用域
function test() {
console.log("Hello World!");
}
3.塊級作用域
JavaScript中,只要是沒有和函數結合在一起的{}中的作用域, 我們就稱之為塊級作用域
//塊級作用域
if (...) {
...
}
while (...) {
...
}
do {
...
}while (...)
4.註意點
-
在塊級作用域中,通過var定義的變數是全局變數,而通過let定義的變數是局部變數
if (true) { //全局變數var num1 = 123; //局部變數 let num2 = 456; } console.log(num1); console.log(num2);
-
在局部作用域中,通過var定義的變數是局部變數,通過let定義的變數也是局部變數
function test() { //局部變數 var num1 = 123; //局部變數 let num2 = 456; } test(); console.log(num1); console.log(num2);
-
無論是在塊級作用域還是在局部作用域中,省略定義變數的關鍵字let或var,那麼該變數就會變為全局變數
if(true) { num1 = 123; num2 = 456; } function test() { num3 = 111; num4 = 222; } test(); console.log(num1); console.log(num2); console.log(num3); console.log(num4);
如有錯誤,還請評論指出