JavaScript作用域

2021-9-30    前端達人

  • 作用域簡介

  • JavaScript 作用域:就是代碼名字,在某個范圍內(nèi)起的作用和效果。目的是為了提高程序的可靠性,減少命名沖突;

  • 作用域是可訪問變量的集合。

  • 在 JavaScript 中, 對象和函數(shù)同樣也是變量。

  • 在 JavaScript 中, 作用域為可訪問變量,對象,函數(shù)的集合。

  • JavaScript 函數(shù)作用域: 作用域在函數(shù)內(nèi)修改。

  •  變量的作用域:根據(jù)作用域的不同我們的變量可以分為全局變量和局部變量

  • 局部作用域

    
                        
    1. function fn() {
    2.     var str = '我是一個局部作用域';
    3. }
    4. console.log(str);    // 這時是訪問不到的
    5. // 局部變量:在局部作用域下的變量   或者在函數(shù)內(nèi)部的變量就是局部變量
    6. // 注意:函數(shù)的形參也可以看做是局部變量
    7. function fun(aru) {
    8.     var num1 = 50; // num1就是局部變量  只能在函數(shù)內(nèi)部使用
    9.     console.log(num1); // 在這里使用是正確的 但是在函數(shù)外面使用報錯
    10.     num2 = 70;
    11.     console.log(num2); // num2在這里可以正常輸出
    12.     console.log(aru);
    13.     // 首先在fun括號里面?zhèn)魅胍粋€hello 然后在函數(shù)內(nèi)部輸出是正確的但是在函數(shù)外部輸出是錯誤的
    14. }
    15. //fun(); 
    16. fun('hello');
    17. //console.log(num1);// 報錯 num1是局部變量
    18. console.log(num2); // 這里可以輸出num2是因為num2是特殊的全局變量
  • 全局作用域:

    全局變量:在全局作用域下的變量稱為全局變量,在全局下都可以使用
    // 注意:如果在函數(shù)內(nèi)部沒有聲明直接賦值的變量也屬于全局變量
     

    
                        
    1. var num = 10; //num就是一個全局變量
    2. console.log(num);
    3. function fn() {
    4.     console.log('全局變量在函數(shù)內(nèi)部也可以使用' + num);
    5. }
    6. fn();
  • 作用域鏈

  • 作用域鏈:內(nèi)部函數(shù)訪問外部函數(shù)的變量,采取的是鏈式查找的方式?jīng)Q定取哪個值 這種結(jié)構(gòu)我們稱為作用域鏈 就近原則

  • 
                        
    1. var num = 10;
    2. function fn() { //外部函數(shù)
    3.     var num = 20;
    4.     function fun() { //內(nèi)部函數(shù)
    5.         console.log(num);
    6.     }
    7.     fun();
    8. }
    9. fn();
  • 作用域鏈總結(jié):

  • 內(nèi)部函數(shù)訪問外部函數(shù)的時候,采取的是鏈式查找的方式,一層一層往外查找

  • 先是查找外一層,有沒有,沒有在往外接著查找,找到了我就輸出相應(yīng)的結(jié)果

  • 沒有的話繼續(xù)往上找就可以了,所以這個方法,我們稱為作用域鏈

  • 簡單總結(jié)就是就近原則,誰離我近我就執(zhí)行誰


藍藍設(shè)計建立了UI設(shè)計分享群,每天會分享國內(nèi)外的一些優(yōu)秀設(shè)計,如果有興趣的話,可以進入一起成長學習,請掃碼藍小助,報下信息,藍小助會請您入群。歡迎您加入噢~~希望得到建議咨詢、商務(wù)合作,也請與我們聯(lián)系。

分享此文一切功德,皆悉回向給文章原作者及眾讀者.

轉(zhuǎn)自:csdn
免責聲明:藍藍設(shè)計尊重原作者,文章的版權(quán)歸原作者。如涉及版權(quán)問題,請及時與我們?nèi)〉寐?lián)系,我們立即更正或刪除。

藍藍設(shè)計sillybuy.com )是一家專注而深入的界面設(shè)計公司,為期望卓越的國內(nèi)外企業(yè)提供卓越的UI界面設(shè)計、BS界面設(shè)計 、 cs界面設(shè)計 、 ipad界面設(shè)計 、 包裝設(shè)計 、 圖標定制 、 用戶體驗 、交互設(shè)計、 網(wǎng)站建設(shè) 、平面設(shè)計服務(wù)

分享本文至:

日歷

鏈接

個人資料

藍藍設(shè)計的小編 http://sillybuy.com

存檔