文章目錄
- 1. 作用域介紹
- 2. 變量的作用域
- *3. JS中沒有塊級作用域
- 4. 作用域鏈
- 5. 預解析
- 預解析案例
1. 作用域介紹
- 全局作用域
- 局部作用域
- 相同的變量名稱在不同的作用域中是不會相互影響的!
2. 變量的作用域
- 全局變量:在全局下都可以使用;
- 局部變量:在函數內部的變量。
注意:
1.如果在函數內部沒有直接聲明直接賦值的變量也屬于全局變量。(例如:num = 20)
2.函數的形參也可以看作是局部變量。
全局變量和局部變量的比較
*3. JS中沒有塊級作用域
4. 作用域鏈
作用域鏈:
內部函數訪問外部函數的變量,采取的是鏈式查找的方式來決定取哪個值,這種結構我們稱之為作用域鏈。(總的來說就是就近原則)
5. 預解析
預解析案例
-
結果:
結果:
undefined
undefined
20
結果:
結果:
注意:
var a = b = c = 9的含義是:var a = 9; b = 9;c = 9 ,也就是 b 和 c 沒有聲明變量,直接賦值了,當作全局變量。