# JavaScript 基本語法
## JavaScript 資料型態
1. boolean (布林值) : true, false
2. Number (數值): 0, 1, 1.599, ...
3. String (字串): "ABC", "不能抽煙", ....
4. Object (物件): 陣列[], JSON{}
5. function (函式): function(arge) { 程式碼 }
## JSON 格式
key是字串由自己定義, value 可以是上述的資料型態
```javascript=
{
key1: value1,
key2: value2,
...
}
```
所以有可能會長這樣子
```javascript=
{
key1: value1,
key2: {
key2_1: value2_1,
key2_2: {
key2_2_1: value2_2_1,
...
}
}
}
```
## JavaScript 迴圈
```javascript=
for (初始值; 條件式; 增值) {
要執行的程式碼
}
```
### 範例:列出陣列中所有元素
```javascript=
var data = [20, 80, 2, 13, 23]
for (var i=0; i<data.length; i++) {
console.log(data[i])
}
```
### 範例:求陣列的總合及平均
```javascript=
var sum = 0
for (var i=0; i<data.length; i++) {
sum = sum + data[i]
console.log(sum)
}
console.log("總合:" + sum)
var avg = sum / data.length
console.log("平均:" + avg)
```
## JavaScript 函式
### 宣告一個函式 Sum 可以計算 array 的總合
```javascript=
var Sum = function(array) {
var result = 0
for (var i=0; i<array.length; i++) {
result = result + array[i]
}
return result
}
Sum(data)
```
### 宣告一個函式 Sum2 可以回傳 array 的總合和平均
```javascript=
var Sum2 = function(array) {
var total = 0
for (var i=0; i<array.length; i++) {
total = total + array[i]
}
var result = {
"sum": total,
"avg": total/array.length
}
return result
}
Sum2(data)
```
### 將兩個版本的函式結合成 JSON
```javascript=
var finalSum = {
"v1" : Sum,
"v2" : Sum2
}
```
使用第一個版本的 Sum
```javascript=
finalSum.v1(data)
```
使用第二個版本的 Sum2
```javascript=
finalSum.v2(data)
```