### 1.淺拷貝(只拷貝地址)

- 此時改變棧中的任一對象的值,倆者的值都會改變,因為他們的存儲地址一樣
- 改變復制的對象,原對象也會改變
```
<script>
var obj = {
name: "chengchao",
age: "20"
}
cheng = obj
cheng.name = "zhang"
console.log(cheng, obj)
//{name: "zhang", age: "20"} {name: "zhang", age: "20"}
</script>
```
### 2.深拷貝(拷貝值和址)將值放入另一個地址中

- 此時對象之間屬性的改變互不影響
- 改變復制的對象,原對象值不會改變
```
<script>
var obj = {
name: "chengchao",
age: "20"
}
cheng = { ...obj
}
cheng.name = "zhang"
console.log(cheng, obj)
//{name: "zhang", age: "20"} {name: "chengchao", age: "20"}
</script>
```
## promise解決回調地獄
```
<script>
function getData(url){
const promise = new Promise((resolve,reject)=>{
$.ajax({
url,
dataType:"jsonp",
success:res=>{
resolve(res)
},
error:err=>{
reject(err);
}
})
})
return promise;
}
getData("https://api.douban.com/v2/book/search?q=javascript&count=1").then(res=>{
let id = res.books[0].id;
return getData(`https://douban.uieee.com/v2/book/${id}`)
}).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小效果
- 字符串截取