[TOC]
## 簡單的generator(運行原理)
```
function *gen(x){
console.log(x)
var y = yield x;
//y是yield的返回值 由自己決定 ---從g.next(y)中傳入 與yield后面的內容無關
var z = yield x+y;
yield z + y + x
}
var g = gen(10)
console.log(g)
console.log(g.next())
// g.next()會得到一個對象,有value,就是yield后面的內容,done表示generator函數是否執行完畢
console.log(g.next(50))
console.log(g.next(35))
```
## 請求豆瓣
```
<input type="text" placeholder="你的名字">
<button>搜索</button>
<h1></h1>
<img src="" alt="">
<p></p>
```
### 業務邏輯
```
<script>
var baseUrl = "https://douban.uieee.com/v2/movie/"
function* getData() {
var id = yield $.ajax({
url: baseUrl + 'search?q=你的名字&count=1',
dataType: "jsonp",
})
yield $.ajax({
url:baseUrl.id,
dataType:"jsonp"
})
}
var gen = getData();
var movie = gen.next();
movie.value.then(res=>{
var id = res.subjects[0].id;
var detail = gen.next(id)
detail.value.then(res=>{
console.log(res)
})
})
</script>
```
- 效果實例
- 1.點擊增加高度
- 2.tab頁面切換
- 3. 列表切換
- 4. 隔行變色
- 5. swiper 輪播
- 6.vue
- 7.定時器
- 8. 向表格中添加數據
- 9 瀑布流
- 1.JavaScript基礎
- 1. 變量
- 2. 調試
- 3.數據類型
- 4.轉換
- 5.控制語句
- 6.運算
- 7. this
- 8 JSON對象和javascript對象的相互轉換
- 2.JavaScript的控制語句
- 1. 基本控制語句
- 2.節點
- 2.1DOM補充
- 3. 函數
- js的模塊化如何解決
- 不知道有什么用的
- 4.數組
- 5. String
- 補充
- 6.Ajax
- 1. 原生Ajax
- 2. HTTP/get/post
- 3.jQuery-Ajax
- 4.跨域
- 5.axios
- 6.封裝
- Ajax效果
- ajax補充
- 7. 正則
- 1.創建正則表達式
- 2. 正則的api
- 3.正則語法
- 4.例子
- 量詞
- 8.面向對象
- 1.原型
- ES6
- 模塊化
- 1.回調地獄
- 什么是回調地獄
- 簡單封裝
- promise解決回調地獄
- generator解決回調地獄
- async解決回調地獄
- 2.封裝
- Ajax,promise
- JavaScript難點
- 1. 閉包/作用域
- 2.原型鏈
- 3. 兼容性
- 適配
- JavaScript小效果
- 字符串截取