---
# System prepended metadata

title: 11.25、26、27 JS
tags: [MFEE, Javascript]

---

# 11.25、26、27 JS

###### tags: `Javascript`、`MFEE`

## 零、目錄&待辦事項

## 壹、浮點數&整數

## 貳、練習-台幣美金換算、BMI計算

## 參、js-cheatsheet

\+ 要轉換的東西 > 轉換成數值
!!+要轉換的東西 > 轉換成布林值


轉換成布林值的內建函式有問題(應該說每個值的定義跟常識不同...)，不要用比較好


## 肆、js-cheatsheet5-條件陳述
### 一、if...else if...else
else if 不要用太多，不然容易有邏輯上的錯亂
```javascript=
if (第一個條件) {
    條件達成就執行
}
else if (沒達成的話，第二個條件) {
    條件達成就執行
}
else {
    上面都沒達成的話就執行
}
```

簡寫(三元運算子)，只適用於一行式的寫法，若有多行就不能
比較運算子 + ? + :，三元
```javascript=
if(num>100){
    console.log('num大於100')
}
else{
    console.log('num不大於100')
}
```
```javascript=
num > 100 ? console.log('num大於100') : console.log('num大於100')
```
三元運算是一種表達式

## 伍、

&& 'foo'&&'bar' >> 'bar'
|| 'foo'||'' >> 'foo' 

## 陸、var let const 差異
ES5之前，要做成區域變數就只有在函式內
ES6之後，let const 在{}內就是區域變數

## 1126

## 柒、日期
日期的表示法 Date Error Regex
一定要用new來建立date函式
const date = new Date()


## 捌、樣板字串
解決innerHTML字串寫法冗長的問題 ` `${i}``
```javascript=
yearOptionString += 

```


## 玖、控制月份有幾天
new Date(yyyy, m, 0).getDate()
m在js下其實是實際月份-1，例如2020年3月的第在js下其實是(2020, 3, 0)


## 拾、1127 - 陣列


迭代的意思是一個一個依序進來處理
在陣列的部分主要是用call-back function處理

## 重要的部分：
1. length
2. pop、push、shift、unshift
從中間插入的做法之後會教，不要用splice
3. ... > 複製跟串連的作法，不要用concat了，陣列沒有 + 的做法，會轉成字串
4. slice，頭尾二個索引值，包頭不包尾
5. join、split
6. map
7. sort，有副作用
8. filter
9. finIndex
10. includes，講義沒寫，自己去MDN看