---
# System prepended metadata

title: JS 三個問題

---

# 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 的比較會因為型別不同而有所差異   

---