JavaScript 做用域和全局變量

做用域指的是能夠訪問的變量集合,咱們能夠理解爲:做用域就是起做用的區域 在 JavaScript 中有兩種做用域類型: 私有做用域和全局做用域bash

1.私有變量

在 JavaScript 函數中聲明的變量,稱爲私有變量,只能在函數內部訪問它們。函數

實例

console.log(a)
// 此處的代碼不能使用 a 變量
var f = function(){
        var a = 100;
        console.log(a)// 此時能夠使用,內部賦值爲100
    }
複製代碼

在此時,a即是fn函數的私有變量,在函數體外不能獲取到。學習

2.全局變量

函數外聲明的變量,稱爲全局變量spa

實例

var a =12;//全局變量
    var f = function(){
        var a = 100;
        console.log(a)// 內部賦值爲100
    }
    console.log(a)//12  全局的這個a和私有的a沒有關係
複製代碼

3.上級做用域

實例

var b =10;
    var f2 = function(b){
        console.log(b);//因爲在函數體內沒有聲明,因此 b 的值就要到全局去找,
        b = 200;
        console.log(b)// 給 b 賦值:200,由10變爲200,此時輸出值爲200
    }
    f2()
    console.log(b)// 此時全局變量已經變成200
複製代碼

上級做用域查找規律: 上級做用域是誰,就看這個函數在哪一個做用域聲明定義的,對於私有做用域中的某些變量,若沒有在私有做用域中聲明過,那麼函數執行時,就會去上級做用域查找改變量,上級做用域若沒有該變量,則接着向上級查找,直到查找到全局做用域,若扔沒有,則報錯code

4.函數的執行

函數執行過程:先開闢一個私有做用域(棧內存),形參賦值,變量提高,而後代碼從上向下執行;私有變量有形參和在私有做用域中聲明過的變量,其餘的變量都是上級做用域的。ip

以上就是本文的所有內容,但願對你們的學習有所幫助。

相關文章
相關標籤/搜索