JavaScript基礎概念之----作用域
阿新 • • 發佈:2018-10-14
使用 nbsp 關鍵字 同名 作用 argument rip class strong
1、在JS中,作用域就是指 執行代碼的上下文。
2、有三種類型的作用域:
- 全局作用域
- 局部作用域(也稱為“函數作用域”)
- eval作用域
3、在全局作用域中定義的變量,從任何地方都可以訪問,因為它是作用域鏈中最高層(最後一個)。它的生命周期將跨越整個程序。在JavaScript中沒有使用 var 關鍵字聲明的變量都是全局變量。
4、在函數內部使用 var 定義的變量,其作用域是局部作用域,局部作用域 只對該函數的其他表達式是“可見的”,包括嵌套/子函數中的代碼。函數的參數、以及arguments對象,都是屬於局部作用域。
//全局作用域 var myVal = 0; var func = function(){ //局部作用域 var myVal = 1; var myFunc = function(){ //局部作用域 var myVal = 2; } } //eval作用域 eval(‘var a = 3‘);
5、JavaScript中,沒有塊級作用域。如 if/for 無法創建作用域,因此變量可以相互覆蓋(除ES6中新語法)。
6、在函數中聲明局部變量,必須使用 var 關鍵字,否則變量將會是全局變量。在函數體內 ,局部變量的優先級比同名的全局變量高。
7、作用域在函數定義時確認,而非調用時。這也叫詞法作用域。
8、動態作用域 只存在於代碼執行過程中
JavaScript基礎概念之----作用域