欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Javascript作用域(局部和全局作用域)詳細(xì)介紹

 更新時間:2023年06月06日 10:18:31   作者:下一站丶  
作用域是當(dāng)前的執(zhí)行上下文,值和表達(dá)式在其中“可見”或可被訪問,本文主要介紹了Javascript局部作用域和全局作用域,文中有詳細(xì)的代碼示例,具有一定的參考價值,需要的朋友可以借鑒一下

Javascript作用域 (局部作用域和全局作用域) 詳細(xì)介紹

作用域是當(dāng)前的執(zhí)行上下文,值和表達(dá)式在其中“可見”或可被訪問。

常見的作用域為:
全局作用域:腳本模式運行所有代碼的默認(rèn)作用域
函數(shù)作用域:由函數(shù)創(chuàng)建的作用域
局部作用域:用對象{}包著(一個代碼塊)創(chuàng)建出來的作用域

在了解作用域之前先看一下全局變量和局部變量

  • 全局變量
    1、在全局作用域下聲明的變量叫做 全局變量(在函數(shù)外部定義的變量)

    2、全局變量在全局(代碼的任何位置)下都可以使用;全局作用域中無法訪問到局部作用域中的變量。

以下我們用var創(chuàng)建的就是全局變量:

<script>
var value = 66;
    function method(){
        console.log(value);
    }
method();
console.log(value);
</script>

全局變量會提升但并不會賦值:所以 在創(chuàng)建之前l(fā)og是undefined 的
億點小知識:變量提升和上文提到觸發(fā)時間有關(guān)。我們知道,var 和 function 聲明的變量可以在聲明前訪問,這就是因為變量提升的緣故。

<script>
    console.log(value); // undefined 
    var value = 66;
	console.log(value); // 66
</script>
  • 局部變量
    1、在局部作用域下聲明的變量叫做局部變量(在函數(shù)內(nèi)部定義的變量)

    2、局部變量只能在函數(shù)內(nèi)部使用,在局部作用域中可以訪問到全局變量。

在函數(shù)的內(nèi)部創(chuàng)建變量也是局部變量:

<script>
    function method(){
    	var value = 66;
        console.log(value); // 66
    }
method();
console.log(value); //value is not defined
</script>

全局作用域和局部作用域的區(qū)別

  • 全局作用域
    全局作用域中的變量稱為全局變量,可以在任何作用域內(nèi)訪問。有兩種全局變量:

1.全局聲明變量是普通變量,在最頂級由 const、let 和 class 聲明的變量。
2.全局對象是存儲在全局對象中的屬性
億點小知識:所有創(chuàng)建的變量都會作為 window 對象的屬性保存

<script>
var value = 66; // 在整個全局都可以獲取到 value
    function method(){
        console.log(value); // 全局方法內(nèi)部也可以獲取到 value 
    }
method();
</script>
  • 局部作用域
    作用域?qū)ψ兞縼碚f,可以簡單理解為程序能夠訪問到變量的范圍,超過作用域的就無法訪問。
{ 
    // 外面這個 a 作用域,可以訪問變量 a
    const a = 0; 
    console.log(a); // 0
    {
        // 里面這個 b 作用域,可以訪問 a、b
        const b  = 1;
        console.log(a); // 0
        console.log(b); // 1
    }
}
// 最外面的作用域 不能訪問 a,b
console.log(a); // 報錯:Uncaught ReferenceError: a is not defined
  • 函數(shù)作用域
    在函數(shù)內(nèi)部定義的變量,就是局部作用域。函數(shù)作用域內(nèi),對外是封閉的,從外層的作用域無法直接訪問函數(shù)內(nèi)部的作用域
function method(){
    let value = '內(nèi)容';
}
console.log(value ) //報錯:ReferenceError:value is not defined

以上就是Javascript作用域 (局部和全局作用域) 詳細(xì)介紹的詳細(xì)內(nèi)容,更多關(guān)于Javascript 作用域的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論