# 作用域
> 可訪問變量的集合(對象、函數)
> 我們定義了一個變量,這個變量可以被使用的地方,可以使用的范圍
# 函數
> 全局作用域(全局變量):在函數外定義,在所有地方都能被訪問
> 局部作用域(局部變量):在哈數里面定義的變量,只能在函數里面被訪問
# 作用域的工作模式

## 題目一
```
<script>
console.log(a);
//function a() {console.log(4);}
var a = 1;
console.log(a);
//1
function a(){console.log(2)};
console.log(a);
//1
var a = 3;
console.log(a);
//3
function a() {console.log(4);}
console.log(a);
//3
a();
//錯誤: a is not a function
</script>
```

## 題目二
```
var a = 1;
function fn1(a) {
console.log(a);
a = 2;
}
fn1();
console.log(a);
```
等同于如下
```
var a = 1;
function fn1(a) {
console.log(a);
a = 2;
}
fn1();
console.log(a);
```
> 結果:undefined
> 1
## 題目三
```
var a = 1;
function fn1() {
console.log(a);
//1
a = 2;
}
fn1();
console.log(a);//2
```

- 1.JS的基礎知識
- (1)調試
- (2)變量
- (3)數據類型
- 數據類型之間的轉換
- (4)全局變量和局部變量
- (5)運算符和表達式
- (6)數組
- 2.控制語句DOM,BOM,事件
- (1)控制語句
- (2)DOM的基礎
- 節點
- 改變樣式
- DOM事件
- 3.函數
- (1)聲明函數
- (2)構造函數
- (3)函數的參數
- (4)函數的傳參
- (5)改變this
- (6)重載
- (7)回調函數
- 4.數組
- (1)創建數組
- (2)增刪改查
- (3)字符串與數組的轉換
- 5.正則
- (1)創建正則
- (2)字符串中支持正則
- (3)語法
- 最核心的元字符
- 6.ajax
- (1)原生ajax
- (2)http,get,post
- (3)跨域
- (4)jQuery-ajax
- (5)axios
- 7.面向對象
- (1)原型
- (2)原型鏈,繼承
- (3)多態
- 8.es6小結
- 9.js+canvas實現驗證碼
- 10.js的作用域
- 11.閉包
- 實例
- toggle
- 圖片切換
- swiper
- 遮罩顏色漸變
- 表格添加
- 瀑布流
- ajax數據請求渲染
- 百度地圖