diff --git a/04-JavaScript基础/15-内置对象:Date.md b/04-JavaScript基础/15-内置对象:Date.md index 220c4da..80c1c30 100644 --- a/04-JavaScript基础/15-内置对象:Date.md +++ b/04-JavaScript基础/15-内置对象:Date.md @@ -280,44 +280,45 @@ console.log(Date.now()); // 打印结果举例:1589448165370 ```html - - - - - - -
+ + + + + + +
- - - + const div = document.getElementsByTagName('div')[0]; + div.innerText = getCurrentDate(); + + - ``` 实现效果: diff --git a/04-JavaScript基础/17-数组的常见方法.md b/04-JavaScript基础/17-数组的常见方法.md index fa3fe3a..3b7d98f 100644 --- a/04-JavaScript基础/17-数组的常见方法.md +++ b/04-JavaScript基础/17-数组的常见方法.md @@ -1078,7 +1078,7 @@ console.log(JSON.stringify(numArr)); // 打印结果:[1, 2, 3] 上面这段代码,你可要看仔细了,打印结果是 `[1, 2, 3]`,不是 `[2, 4, 6]`。 -**2、数组的元素是引用数据类型**:(直接修改整个对象时,无法改变原数组) +**2、数组的元素是引用数据类型**:(直接修改整个元素对象时,无法改变原数组) ```js let objArr = [ @@ -1095,7 +1095,7 @@ objArr.forEach((item) => { console.log(JSON.stringify(objArr)); // 打印结果:[{"name":"千古壹号","age":20},{"name":"许嵩","age":30}] ``` -**3、数组的元素是引用数据类型**:(修改对象里的某个属性时,可以改变原数组) +**3、数组的元素是引用数据类型**:(修改元素对象里的某个属性时,可以改变原数组) ```js let objArr = [ @@ -1148,6 +1148,10 @@ objArr2.forEach((item, index, arr) => { console.log(JSON.stringify(objArr2)); // 打印结果:[{"name":"小明","age":28},{"name":"小明","age":34}] ``` +**总结**: + +如果纯粹只是遍历数组,那么,可以用 forEach() 方法。但是,如果你想在遍历数组的同时,去改变数组里的元素内容,那么,最好是用 map() 方法来做,不要用 forEach()方法,避免出现一些低级错误。 + 参考链接: - [forEach 到底可以改变原数组吗?](https://juejin.im/post/5d526a4ae51d4557dc774e7d) diff --git a/04-JavaScript基础/27-对象的基本操作.md b/04-JavaScript基础/27-对象的基本操作.md index 26e0143..4de5b8f 100644 --- a/04-JavaScript基础/27-对象的基本操作.md +++ b/04-JavaScript基础/27-对象的基本操作.md @@ -183,14 +183,14 @@ for ... of 的循环可以避免我们开拓内存空间,增加代码运行效 `for ... of`既可以遍历数组,也可以遍历 Map 对象。 -## for in:遍历对象的属性名 +## for in:遍历对象的属性 > `for ... in`主要用于遍历对象,不建议用来遍历数组。 语法: ```javascript -for (const 变量 in 对象名) { +for (const 变量 in 对象) { } ``` diff --git a/04-JavaScript基础/28-浅拷贝和深拷贝.md b/04-JavaScript基础/28-浅拷贝和深拷贝.md index 6504c53..d78630b 100644 --- a/04-JavaScript基础/28-浅拷贝和深拷贝.md +++ b/04-JavaScript基础/28-浅拷贝和深拷贝.md @@ -55,10 +55,12 @@ obj2:{"name":"qianguyihao","age":28,"info":{"desc":"永不止步"}} **语法**: ```js -newObj = Object.assgin(newObj, 被拷贝的对象); +obj2 = Object.assgin(obj2, obj1); ``` -参数解释:`newObj`指的是**拷贝给谁**。 +**解释**:将`obj1` 拷贝给 `obj2`。 + +**作用**:将 obj1 的值追加到 obj2 中。如果对象里的属性名相同,会被覆盖。 **例 1**: @@ -115,6 +117,35 @@ const obj2 = {}; const obj3 = Object.assign(obj2, obj1); ``` +**例4**:【重要】 + +```js +const obj1 = { + name: 'qianguyihao', + age: 28, + desc: 'hello world', +}; + +const obj2 = { + name: '许嵩', + sex: '男', +}; + +// 浅拷贝:把 obj1 赋值给 obj2。这一行,是关键代码 +Object.assign(obj2, obj1); + +console.log(JSON.stringify(obj2)); +``` + +打印结果: + +``` +{"name":"qianguyihao","sex":"男","age":28,"desc":"hello world"} +``` + +注意,**例 4 在实际开发中,会经常遇到,一定要掌握**。它的作用是:将 obj1 的值追加到 obj2 中。如果两个对象里的属性名相同,则 obj12 中的值会被 obj2 中的值覆盖。 + + ## 深拷贝的实现方式 深拷贝其实就是将浅拷贝进行递归。 diff --git a/12-React基础/09-AntD框架的upload组件上传图片时遇到的一些坑.md b/12-React基础/09-AntD框架的upload组件上传图片时遇到的一些坑.md index 5cd9d69..e2c5b57 100644 --- a/12-React基础/09-AntD框架的upload组件上传图片时遇到的一些坑.md +++ b/12-React基础/09-AntD框架的upload组件上传图片时遇到的一些坑.md @@ -605,6 +605,10 @@ export default { 大功告成。本文感谢 ld 同学的支持。 +更多内容,可以看本人的另外一篇文章: + +- [AntD框架的upload组件上传图片时使用customRequest方法自定义上传行为](https://www.cnblogs.com/qianguyihao/p/13093592.html) + ## 其他问题 - [beforeUpload返回false后,文件仍然为上传中的状态](https://github.com/ant-design/ant-design/issues/8779) @@ -613,6 +617,5 @@ export default { 有人说,前端开发,连卖菜的都会。可如果真的遇到技术难题,还是得找个靠谱的前端同学才行。这不,来看看前端码农日常: -![](http://img.smyhvae.com/20190302_1339.png) - +![](http://img.smyhvae.com/20190302_1339_2.png) diff --git a/16-推荐链接/04-前端文章推荐.md b/16-推荐链接/04-前端文章推荐.md index 39c0988..f55bce6 100644 --- a/16-推荐链接/04-前端文章推荐.md +++ b/16-推荐链接/04-前端文章推荐.md @@ -1,5 +1,10 @@ +### 2019-04-26 + +- [一名【合格】前端工程师的自检清单](https://juejin.im/post/5cc1da82f265da036023b628) + + ### 2020-05-14 - [React中setState的怪异行为 ——setState没有即时生效](https://blog.csdn.net/handsomexiaominge/article/details/86348235)