---
# System prepended metadata

title: 0318複習用
tags: [五倍, 複習用, JS]

---

#  0318複習用
## 抓取網路資料
如遇到屬性內有設定特殊字元屬性時, 如：- 時, 可以改用何種方式選取該屬性？
### dataset
可藉由 dataset 來管理屬性
```html
<div id='xyz' data-aa='123' data-b='456' data-ccc='890'></div>
```

```jsx
//用 querySelector 抓出該元素
const whatAtt = document.querySelector("#xyz");
console.log(whatAtt.dataset);
//此時會印出？？
```
## RESTful
### HTML
form 標籤有重要的兩個屬性, method 與 action
- action - 用途為？ 若沒寫會發生？？
- method - 用途為？ 
 HTML 表單只有支援哪兩個動作？ 需透過 JS 就可以使用其他的方式送出資料

### 他種類補充

patch 與 put 在實作上沒有太大區別,其作用為？ 但在原始定義中區別為？
## setTimeout & setInterval

setTimeout, setInterval 參數如何設置？設置時間的單位為？三秒如何設置？
setTimeout, setInterval 時間到後各自會發生？
setTimeout, setInterval 如何停止？
```jsx
setTimeout((x) => {
	console.log(x)
}, 3000) // 會發生？
```
```jsx
setInterval((x) => {
	console.log(x)
}, 3000) // 會發生？
```
## Event loop

### 導言
```jsx
console.log(1)
setTimeout((x) => {console.log(2)}, 3000)
console.log(3)
// 印出？
console.log(1)
setTimeout((x) => {console.log(2)}, 0) // 與上方的差異為？
console.log(3)
// 印出？
```
### 資料結構
- stack 堆疊, 依什麼原則運作？
- queue 佇列, 依什麼原則運作？
### 網頁運行
網頁在進行事件時, stack, WebAPIs, queue 三者間會如何運作？
事件會在哪邊運作？多事件時會產生什麼狀況？若有監聽或計時, 三者如何運作？
### stack overflow
stack 溢流 (overflow) 是什麼？怎麼產生的？
### Event loop
Event loop 是指什麼的 Loop ?
## 物件導向 OOP

物件導向的本質為？共同行為在親層與子層間的關係是？
物件 = 屬性 + 行為
### 物件相關
物件的方法 (methor, 或稱動作), 實際上是函數, 如何在物件上添加方法？
### 繼承物件 (相關原理, 實例等

創立新物件會有繼承 方法 的狀況, 有好幾種可以創立物件的方式, 繼承的模式也會不一樣, 有的涉及到原型練

1. 用 Literal (字面值) 賦值, 此時 h1 會帶有 hero 該物件內的所有屬性與方法 (methor)
    
    ```jsx
    function heroCreator(name, power){
    	const hero = {
    		name : name
    		power : power
    		attack : function(){
    			console.log(‘attack!!’)	
    		}
    	return hero
    	}
    const h1 = heroCreator(‘123’, 3000)
    ```
    
    字面值的方式建立 object, 其 .__ proto __ 會指向？ 
    
2. 原型打造
    
    ```jsx
    function heroCreator(name, power){
    const h = Object.create(action) 
    // 此處(action)放入原型(此例為action), 沒有要打 null 給空值
    /* 此時會發生
    	1. 會先？
    	2. .__ proto__ 會？ */
	h.name = name
	h.power = power
    return h
    }
    ```
    
    上面是模版, 另外要帶入原型, 若新創的物件要執行沒有定義方法會發生？
    
    ```jsx
    //原型, 放入上方模板, 即可使模板所造的新物件產生什麼效果？
    const action = function (){	
    	eat : function() {
    		console.log(‘yummy’)
    	}
    	attack: function(){
    		console.log(‘attack!!’)	
    	}
    }
    ```
    ```jsx
    const h2 = heroCreator(‘abc’, 2000) 
    console.log(h2.eat) // 若依照上方原型打造, 此時會印出？
    ```
    故如果使用該物件的方式, 若該物件沒有該功能會？？
    
3. 第二點用 NEW 改寫
    
    ```jsx
    function heroCreator(name, power){
    	this.name = name
    	this.power = power
    }
    const h3 = new heroCreator(‘cc’, 100)
    // 若沒有加 new 會發生？
    ```
    
    在宣告後的生成函數加了 new 會依序發生以下事件：
    1. 先？
    2. 會先將第一步的 (什麼東西) 指向此例的 heroCreator 的 (什麼東西), 預設值為空物件
    3. 將 name 帶入？？（這個物件的屬性名字請以這個引數賦予名字)
    4. return
    5. 最後將 h3 = 該物件
    
### 原型鏈 ( .**proto** 與 prototype )

```jsx
''.__proto__ -> string.prototype //此為原型練
```

JS 物件的基礎：

1. 所有的物件都有？？
2. 所有的 function 都有 ？？ ( function也是物件也有上面的？？ ), 預設為空物件

注意：JS 沒有上下層所以 proto 不算上層

如果讓該物件使用方法, 而沒有該方法時, 會看該物件的？？ 有無該方法
若沒找著會在生成此物件的函式的？？尋找, 依此類推至最上層

流程：應為？

### 語法糖衣

JS 沒有 class 用 class 函數 { } 底層運作就是 prototype