- JavaScript從入門到精通(微視頻精編版)
- 明日科技
- 775字
- 2020-09-01 15:02:25
4.6 變量的作用域

視頻講解
變量的作用域是指變量在程序中的有效范圍,在有效范圍內可以使用該變量。變量的作用域取決于該變量是哪一種變量。
4.6.1 全局變量和局部變量
在JavaScript中,變量根據作用域可以分為兩種:全局變量和局部變量。全局變量是定義在所有函數之外的變量,作用范圍是該變量定義后的所有代碼;局部變量是定義在函數體內的變量,只有在該函數中,且該變量定義后的代碼中才可以使用這個變量,函數的參數也是局部性的,只在函數內部起作用。如果把函數比作一臺機器,那么,在機器外擺放的原材料就相當于全局變量,這些原材料可以為所有機器使用,而機器內部所使用的原材料就相當于局部變量。
例如,下面的程序代碼說明了變量的作用域的有效范圍:
01 var a="這是全局變量"; //該變量在函數外聲明,作用于整個腳本 02 function send(){ //定義函數 03 var b="這是局部變量"; //該變量在函數內聲明,只作用于該函數體 04 document.write(a+"<br>"); //輸出全局變量的值 05 document.write(b); //輸出局部變量的值 06 } 07 send(); //調用函數
運行結果為:
這是全局變量 這是局部變量
上述代碼中,局部變量b只作用于函數體,如果在函數之外輸出局部變量b的值將會出現錯誤。錯誤代碼如下:
01 var a="這是全局變量"; //該變量在函數外聲明,作用于整個腳本 02 function send(){ //定義函數 03 var b="這是局部變量"; //該變量在函數內聲明,只作用于該函數體 04 document.write(a+"<br>"); //輸出全局變量的值 05 } 06 send(); //調用函數 07 document.write(b); //錯誤代碼,不允許在函數外輸出局部變量的值
4.6.2 變量的優先級
如果在函數體中定義了一個與全局變量同名的局部變量,那么該全局變量在函數體中將不起作用。例如,下面的程序代碼將輸出局部變量的值:
01 var a="這是全局變量"; //聲明一個全局變量a 02 function send(){ //定義函數 03 var a="這是局部變量"; //聲明一個和全局變量同名的局部變量a 04 document.write(a); //輸出局部變量a的值 05 } 06 send(); //調用函數
運行結果為:
這是局部變量
上述代碼中,定義了一個和全局變量同名的局部變量a,此時在函數中輸出變量a的值為局部變量的值。
推薦閱讀
- 深入核心的敏捷開發:ThoughtWorks五大關鍵實踐
- 玩轉Scratch少兒趣味編程
- Java Web開發之道
- Learn Scala Programming
- 21天學通C++(第6版)
- Scala謎題
- C語言程序設計教程
- OpenCV 4計算機視覺項目實戰(原書第2版)
- 西門子S7-200 SMART PLC編程從入門到實踐
- Oracle GoldenGate 12c Implementer's Guide
- Arduino可穿戴設備開發
- 大數據時代的企業升級之道(全3冊)
- Python程序設計教程
- Web前端測試與集成:Jasmine/Selenium/Protractor/Jenkins的最佳實踐
- Illustrator CS6中文版應用教程(第二版)