1. 程式人生 > >JavaScript基礎概念之----作用域

JavaScript基礎概念之----作用域

使用 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基礎概念之----作用域