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

淺談JavaScript作用域

 更新時間:2022年01月24日 14:47:06   作者:bear*6  
這篇文章主要介紹了JavaScript作用域詳情,作用域的使用提高了程序邏輯的局部性,增強了程序的可靠性,減少了名字沖突,下面文章我們一起來了解更多的詳細內容,需要的小伙伴也可以參考一下

一、作用域

通常來說,一段程序代碼中所用到的名字并不總是有效和可用的,而限定這個名字的可用性的代碼范圍就是這個名字的作用域。作用域的使用提高了程序邏輯的局部性,增強了程序的可靠性,減少了名字沖突。

JavaScript(es6前)中的作用域有兩種:

  • 全局作用域
  • 局部作用域(函數作用域)
  • 在ES6后,還有一個塊級作用域,以后在詳述。

1、全局作用域

作用于所有代碼執(zhí)行的環(huán)境(整個 script 標簽內部)或者一個獨立的 js 文件。

2、局部作用域

作用于函數內的代碼環(huán)境,就是局部作用域。 因為跟函數有關系,所以也稱為函數作用域。

例如:

  for(let i=0;i<100;i++){
       sum += i;
   }

二、變量的作用域

在JavaScript中,根據作用域的不同,變量可以分為兩種:

  • 全局變量
  • 局部變量

1、全局變量

在全局作用域下聲明的變量叫做全局變量(在函數外部定義的變量)。
全局變量在代碼的任何位置都可以使用
在全局作用域下 var 聲明的變量 是全局變量
特殊情況下,在函數內不使用 var 聲明的變量也是全局變量(不建議使用)

2、局部變量

在局部作用域下聲明的變量叫做局部變量(在函數內部定義的變量)
局部變量只能在該函數內部使用
在函數內部 var 聲明的變量是局部變量
函數的形參實際上就是局部變量

3、全局變量和局部變量的區(qū)別

  • 全局變量:在任何一個地方都可以使用,只有在瀏覽器關閉時才會被銷毀,因此比較占內存。
  • 局部變量:只在函數內部使用,當其所在的代碼塊被執(zhí)行時,會被初始化;當代碼塊運行結束后,就會被銷毀,因此更節(jié)省內存空間。

三、作用域鏈

根據在內部函數可以訪問外部函數變量的這種機制,用鏈式查找決定哪些數據能被內部函數訪問,就稱作作用域鏈

  • 只要是代碼,就至少有一個作用域
  • 寫在函數內部的局部作用域
  • 如果函數中還有函數,那么在這個作用域中就又可以誕生一個作用域

例如:對下面的代碼進行分析判斷結果是幾

function f1() {
    var num = 123;
    function f2() {
        console.log( num );
    }
    f2();
}
var num = 456;
f1();

分析如下圖所示:

可知最終的結果為:123

同樣,也可以采取就近原則的方式來查找變量最終的值。

到此這篇關于JavaScript作用域詳情介紹的文章就介紹到這了,更多相關JavaScript作用域內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論