---
# System prepended metadata

title: JS Class 2 0821
tags: [JavaScript]

---

###### tags: `JavaScript`
# JS Class 2 0821


## :memo: 模組6. 流程控制
### 6-1. 何謂流程控制
有關聯/因果性的再用if else if,否則單選判斷用switch即可
![](https://i.imgur.com/2qVQVqZ.png)


### 6-2. if else 選擇結構
if else:非A即B
### 6-3. switch case 選擇結構
時間複雜度，編譯器會最佳化演算法，以達成較快的速度
資料結構:走訪、遍歷、尋訪
二元樹裏的資料其實不一定是依照大小或從左到右排序的，可能依照輸出的方式不同，結果也會不盡相同。
目前理論上有四種輸出順序：
前序遍歷 (Preorder Traversal)
中序遍歷 (Inorder Traversal)
後序遍歷 (Postorder Traversal)
層序遍歷 (Level-order Traversal)

![](https://i.imgur.com/ibpkuwO.png)
![](https://i.imgur.com/3gJiuJC.png)

---

## :memo: 模組7. 重複流程結構
### 7-1. 重複結構設計要領
***變因寫在break、continue前***

c#練習:將陣列[1,3,5,7,9]加為[6,8,10,12,14]印出
```
        private void button2_Click(object sender, EventArgs e)
        {
            int[] x = { 1, 3, 5, 7, 9 };
            Plus(x);
            foreach(int i in x)
            {
                Console.WriteLine(i);
            }
            
        }
        public int[] Plus(int[] arr)
        {
            for (int i =0;i <arr.Length;i++)
            {
                arr[i] += 5;
            }
            return arr;
            }
```

### 7-2. while 迴圈
### 7-3. do while迴圈

---

## :memo: 模組8. for迴圈與進階控制
### 8-1. for迴圈語法與流程
每次迴圈結束要改變誘因/變數 
```
ex:var x =0
    while(x<5){
    console.log(x);
    x++;
    if(x==2)
    {continue;}
    }
    略過2印出
```
### 8-2. 巢狀迴圈
```
var x = [45,6,465,21,354,498,432,12,312,121231,123,123,321]
var n = new Set();
for (i=0;i<x.length;i++){

    n.add(x[i]);
}
```
///將重複值移除///

### 8-3. break continue 語法

---

## :memo: 模組9. 陣列
### 9-1. 陣列宣告與初始化
方法也是物件
陣列可隨時改變長度，不用new/預先給大小
陣列建議寫法:
![](https://i.imgur.com/gAtnW0g.png)


### 9-2. 陣列操作
二維陣列第幾個陣列第幾個參數:
![](https://i.imgur.com/TOtdanb.png)


### 9-3. 陣列常用屬性與方法
()小括號是執行的意思

![](https://i.imgur.com/dkDsqrd.png)


練習:設一個函式可以新增[1,2,3,4,5]的陣列形式
```
function name() {
    var arr = []
    for(i=1;i<6;i++){
        arr.push(i);
    }
    return arr;
}
```




合併陣列並排序
![](https://i.imgur.com/oGPMXh5.png)


---

## :memo: 模組10. 函式
### 10-1. 函式宣告與初始化
練習:設計一個函式(如果為原住民，分數+10分。分數90分以上為S並印出，80以上為A....)

```
function getscore(score,native){
    if(score<91 && native){
        score +=10
    }
  var  show = "";
   switch(parseInt(score/10)){
       case 10:
       case 9:
               show="S";
               break;
    case 8: 
               show="B";
               break;
           case 7 :
               show="C";
               break;
           case 6:
               show="D";
               break;
           default:
               console.log("FAILED");
   }return show;
}
```
///即便超過100也顯示S///

### 10-2. 函式使用
![](https://i.imgur.com/aSmBcC3.png)
2種函式定義方式依個人習慣使用



