---
# System prepended metadata

title: 小組第三周JS複習

---

# ==討論日期 : 3/27 ( 三 )==

## 上週複習
- [討論日期：3/20](https://hackmd.io/T1y2n-8EQdqdVfwrj_m4Lw?both)



<br>

## 💖 本週複習 🥰

[核心篇第三堂：型別轉換](https://hackmd.io/@hexschool/BkaoMAhmi)
<br>

### ==有哪八種型別？==

#### 相關知識點
- [JavaScript 的資料型別與資料結構](https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Data_structures)



#### 大家回答
七種原始型別：
1. Boolean
2. Null
3. Undefined
4. Number
    - 超出一個範圍後就比較不精準。
    - 是 JavaScript 原生的 Number 能夠表示的最大值
6. BigInt
    - BigInt 好像是超過 JS 的最大值及最小值時使用，會比較穩定。
    - 轉型為「數學值」，沒有 NaN、沒有小數點、沒有最大值。
7. String
8. Symbol（於 ECMAScript 6 新定義）

另外還有 Object



<br>

### ==請解釋 undefined、null、not defined 的差別==

#### 相關知識點




#### 大家回答
- undefined
    未定義，當變數已被宣告但未被賦予任何值便是 undefined。
    
- Null
    有一個值，值為空。
    `typeOf null;` 印出 `object`
    `Number( null );` 印出 0
- not defined
    值未被宣告。

![image](https://hackmd.io/_uploads/BJg-Bg9ZkC.png =400x)

<br>

### 問題測驗 (溫馨提醒記得複習前兩周的唷!)


#### ==題目一==
```js=
console.log(typeof []);
```

解答：object
<br>

#### ==題目二==
```js=
function a() {
  this.a = 1;
}
a.a = 2;

console.log(a.a)
```

解答：2

function 是物件所以可以塞屬性進去。
<br>

#### ==題目三==
```js=
function a() {
  this.a.a = 1;
}
a.a = 2;
a();
console.log(a.a);
```

解答：1

a.a = 2;
a函式的a屬性先被賦值為2

a();
函式執行 this.a.a = 1;
等同於 window.a函式.a屬性
被賦值為1
<br>

#### ==題目四==
```js=
console.log(typeof typeof 1)
```

解答：string
<br>

#### ==題目五==
```js=
var a = 10;
var b = new Number(10);
console.log(a == b);
```

解答：true

寬鬆比較會自動轉型
<br>

#### ==題目六==
```js=
var a = 1;
var b = delete a;
console.log(b);
```

解答：false

delete 不能刪除變數，所以 delete a 回傳 false。

延伸題：
```js=
const obj = {
  a: 1
}

delete obj.a    // true
```

```js=
z = 3;
console.log(delete z);    // true
```
<br>

#### ==題目七==
```js=
var a = 1;
a++;
var b = a++;
console.log(b);
```

解答：2

var b = a++; 的 ++ 會在b被賦值 '後' 才執行
var b = ++a; 的 ++ 會在b被賦值 '前' 才執行

所以b被賦值為2
<br>

#### ==題目八==
```js=
if (new Boolean(0)) {
  console.log('true')
} else {
  console.log('false');
}
```

解答：true

new Boolean(0) 是 object

<hr>

## 補充
- [toFixed](https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed)
- [toPrecision](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Number/toPrecision)

