# JS 三個問題
---
## 請問這個 this 會印出甚麼, 代表甚麼?
```
function a() {
console.log(this);
}
```
ANS:
1. undefined
2. 不知道, 因為 this 取決于執行這個 function 時的環境
---------------------------------------------------
## 請問這個會印出甚麼?? 做了甚麼事?
```
console.log(('b' + 'a' + + 'a' + 'a').toLowerCase());
```
ANS:
1. banana
2. 因為先做了型別轉換, 但輸出後被小寫轉換
```
‘a’ 是算術運算子的寫法(一元運算子), 根據 JS 的特性,
JS 會嘗試將 ‘a’ 轉換成數字
But, 就是這個 but,
因為字串無法成功轉換成數字(也沒有涵式幫忙, 且因為 ‘a’ 是文字)
所以會嘗試輸出 NaN(Not a Number) 的值
'b' + 'a' + NaN + 'a'
→ baNaNa
於是加上轉換小寫就成了 banana
```
---------------------------------------------------
## 下面會印出甚麼?
```
var a = [1,2,3,4]
var b = [1,2,3,4]
console.log(a === b); // → 這裡會印出甚麼?
var objA = { name: '別緊張, 你今天好嗎??' }
var objB = { name: '別緊張, 你今天好嗎??' }
console.log(objA === objB); // → 這裡會印出甚麼?
```
ANS:
兩個都會是 false, 在考 JavaScript 的比較會因為型別不同而有所差異
---