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

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

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

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

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

常見的作用域?yàn)椋?br />全局作用域:腳本模式運(yùn)行所有代碼的默認(rèn)作用域
函數(shù)作用域:由函數(shù)創(chuàng)建的作用域
局部作用域:用對(duì)象{}包著(一個(gè)代碼塊)創(chuàng)建出來(lái)的作用域

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

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

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

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

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

全局變量會(huì)提升但并不會(huì)賦值:所以 在創(chuàng)建之前l(fā)og是undefined 的
億點(diǎn)小知識(shí):變量提升和上文提到觸發(fā)時(shí)間有關(guān)。我們知道,var 和 function 聲明的變量可以在聲明前訪問(wèn),這就是因?yàn)樽兞刻嵘木壒省?/code>

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

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

在函數(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)訪問(wèn)。有兩種全局變量:

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

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

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

相關(guān)文章

最新評(píng)論