阅读技术文章
💔:此处只总结较为优秀的文章(大部分已过滤)
✖:表示看了但未整理的
⭐:表示正在看,还没看完的
✔:表示看了,不需整理或已整理的文章
第一周(5.5-5.12)
- vue-element-admin 后台模板官方使用文档 ✔
- 全面分析前端的网络请求方式 ✔
- iframe相关 ✔
- vue路由和复用组件的解决办法 ✖
- 前端开发者必备的Nginx知识 ⭐(待看待整理啊)
- 看和整理到请求过滤
- 在vue中使用NProgress.js ✖
- js同步和异步 ✖(纠结下到底整理在面试题详解中还是知识点的文章分配)
- 手摸手,带你用vue撸后台 系列五(v4.0新版本)
- 圣杯布局和双飞翼布局的理解与思考 ✖(还没看完)
第二周(5.13-5.19)
- 2019前端工程师自检清单与思考 ✔
- (感观:菜鸟前端的前路还很遥远)
- [Javascript] Promise ES6 详细介绍 ✔
- 数组去重
- JavaScript数组去重(12种方法,史上最全) ⭐(还没看完)
- ES6数组去重的最佳实践 ✔
- HTTP 状态码对照表 ✖
第三周(5.20-5.26)
前端流行趋势(最新技术了解)
CSS3 中关于 -of-type 和 -child的差异性及适用场景 ✖
- 整理下css3的选择器总结
cookie和token ✔
基础知识巩固
一些基础知识(可能之前已经整理过的),碎片知识积累巩固
JS
parseInt()
1 | parseInt(string, radix); |
Arguments 对象
arguments 是一个对应于传递给函数的参数的类数组对象。
数组方法
Array.prototype.map()
1 | // map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。 |
Array.prototype.flat()
1 | // 语法 |
主要用于 扁平化嵌套数组 和 扁平化与空项 (具体查看链接详情)
Array.from()
1 | // Array.from() 方法从一个类似数组或可迭代对象中创建一个新的数组实例 |
Array.prototype.concat()
1 | // concat() 方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组 |
Array.prototype.sort()
1 | // sort() 方法用原地算法对数组的元素进行排序,并返回数组。 |
对数组中的数字进行排序
1
2
3
4
5
6
7
8
9
10
11
12var numbers = [4, 2, 5, 1, 3];
numbers.sort(function(a, b) {
return a - b;
});
console.log(numbers);
也可以写成:
var numbers = [4, 2, 5, 1, 3];
numbers.sort((a, b) => a - b); // 记住这个方法!!
console.log(numbers);
// [1, 2, 3, 4, 5]
Array.prototype.reduce()
1 | // reduce() 方法对数组中的每个元素执行一个由您提供的reducer函数(升序执行),将其结果汇总为单个返回值。 |
Array.prototype.indexOf()
CSS
不定时的总结一下使用的css属性,加深记忆和理解
animation动画
主要是
-
1
2
3@keyframes animationname { // 关键帧名字
keyframes-selector {css-styles;} // 动画持续的时间比(也可以填入from或to)
} -
1
2
3
4
5
6
7animation: 1name 2duration 3timing-function 4delay 5iteration-count 6direction 7fill-mode 8play-state;
// 依次填入动画属性的:
// 1名字、2时间、3周期函数(如具体的函数或者ease等)、4动画开始前的延迟间隔、5播放次数
// 6是否应该轮流反向播放动画
// 7规定当动画不播放时(当动画完成时,或当动画有一个延迟未开始播放时),要应用到元素的样式
// 8指定动画是否正在运行或已暂停
background背景
重点:
-
1
2
3
4
5
6
7
8
9
10
11background:bg-color bg-image position/bg-size bg-repeat bg-origin bg-clip bg-attachment initial|inherit;
// 背景颜色
// 背景图片、背景图片的位置,背景图片的大小、背景图片是否重复
// bg-image:可以同时设置多张图片,前者会覆盖后者
// bg-origin:背景图片的的定位区域(padding-box|border-box|content-box)
// bg-clip:背景图像的绘画区域
// bg-attachment:设置背景图像是否固定或者随着页面的其余部分滚动
// 常用示例:
background: url('xxx/xx.jpg') center contain(或者数值和百分比) no-repeat;
transition过渡
-
1
2
3
4
5
6transition: property duration timing-function delay;
// 需要改变的css属性名称 持续时间 效果函数 延迟时间
// 示例:
transition: width 3s ease 1s;
animation和transition的区别
https://segmentfault.com/a/1190000019115237
transform变换
1 | transform: none|transform-functions; |
flex布局
1 | flex: flex-grow flex-shrink flex-basis|auto|initial|inherit; |
jQuery
遍历
Vue.js
不定时查阅文档巩固的基础知识
未分类
事件处理
-
1
2
3
4
5
6<el-input
v-model="search"
placeholder="搜索商家或地点"
@focus="focus"
@blur="blur"
@input="input"/>用自定义事件绑定方法更加清楚直观
watch
watch
一个对象
- 键 是需要观察的表达式
- 值 是对应回调函数。值也可以是方法名,或者包含选项的对象。
- Vue 实例将会在实例化时调用 $watch(),遍历 watch 对象的每一个属性。
$watch参数
参数:
{string | Function} expOrFn
方法名/函数表达式{Function | Object} callback
回调函数{Object} [options]
包含选项的 对象{boolean} deep
{boolean} immediate
$watch() 选项
deep
为了发现对象内部值的变化,可以在选项参数中指定
deep: true
。注意监听数组的变动不需要这么做。immediate
在选项参数中指定
immediate: true
将立即以表达式的当前值触发回调
示例
1 | var vm = new Vue({ |
interview-question
第1题
(JavaScript函数深入理解)
['1', '2', '3'].map(parseInt)
what & why ?
第2题
(JS事件循环及异步机制)
setTimeout、Promise、Async/Await 判断下面的输出顺序
1 | // 今日头条面试题 |
答案
1 | script start |
⭐详细分析可以看:
第3题
(数组操作,js高阶函数运用)
将一个多重数组扁平化并去除其中重复数据,最终得到一个升序且不重复的数组
1 | Array.from(new Set(arr.flat(Infinity))).sort((a,b) => a-b) |
解析
以上可以分步总结为以下步骤:
已知如下数组:var arr = [ [1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12, [12, 13, [14] ] ] ], 10];
编写一个程序将数组扁平化去并除其中重复部分数据,最终得到一个升序且不重复的数组
1 | var arr = [ [1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12, [12, 13, [14] ] ] ], 10] |
- 拍平数组:const flatArray = arr => arr.reduce((a,b) => a.concat(Array.isArray(b) ? flatArray(b): b), []);
- 去重+排序: […new Set(flatArray)].sort((a,b) => a-b);
相关知识点
本月计划目标
备注:这个目标设定开始于五月中旬
🍉:表示当前进行中
JS
原理
- JS异步机制 总结和整理
- JS事件机制 总结和整理
- JS原型和原型链 总结和整理
框架和插件
-
element-ui
框架学习和使用 🏦- 大致看一下官方文档
-
vue-element-admin
后台框架学习和使用 🏦- 把基础文档和教程大致看一遍
- 当前计划:把👆看的过程中总结的疑问解决
-
Swiper
触摸滑动插件学习使用 🍉- 模仿年报速览项目的模板
- 简易轮播图
- 研究demo(制定日后的相关学习计划)
- GSAP Web动画库学习使用 🏦
-
TweenMax
和TimelineMax
文档通读 - 相关技术文章和 实战demo经验总结
-
CSS
hexo博客
优化博客样式
- 优化分类页,可以展开折叠父级分类
- 优化归档页:增加月份分割线
- 置顶文章
- 增加背景壁纸(原理根据之前分类页的列表样式来)
迁移旧博客文章
工具
构建工具
- gulp学习使用
- 将公司项目中曾经使用过gulp的项目整理出一个模板(可多次使用的)
Vue
- 写简单的权限验证的demo(和文章记录)
项目实战
- 美团网实战项目(vue+node+koa2+nuxtjs+ssr)