前端学习

常规知识点

在第一周的时候整理基础知识的时候侧重回顾的一些知识点,这里列一下

js基础知识
从输入url到获得页面经历的所有事情(越细越好)
原型链
继承
es6新特性
DOM事件和事件流
盒子模型
事件循环
BFC
Flex
Promise原理以及手写代码
vue响应式原理
vue虚拟dom & diff算法
前端性能优化
防抖和节流
HTTP缓存
常见算法(排序洗牌等)
面试中遇到的高频题(跟上面会有重合)

事件循环
原型链
vue响应式原理
HTTP缓存
防抖和节流
vue3解决什么问题
Vue 为什么不能检测数组和对象的变化,怎么处理(为什么通过索引操作数组不能触发响应式)
vue router原理
v-model实现原理
vue.nexttick
https的过程
性能优化
promise(基本上要求可以手写Promise.all方法,这个问的最多)
async/await
从输入url到看到页面经历的所有事情(越细越好,这道题知识点非常多)
跨域形成原因以及解决方案
深拷贝和浅拷贝(也会问到JSON.stringify JSON.parse这种方案的弊端)
箭头函数和普通函数有什么区别
最近在看什么新技术
低频但是需要注意的面试题

CSRF & XSS
chrome设置小于12px字体
node和浏览器事件循环有何不同
webpack tree shaking
map & set
前端有哪些技术(腾讯面试题,面试官会顺着你说的技术一个一个展开问)
实现一个call/bind(call,apply,bind区别)
get 和 post 的区别
BFC
yield
如何给localStorage加上max-age功能
Object.defineProperties都有那些参数,以及参数解释
requestAnimation
手写原型链和js各种继承模式
让你重新做你做过的项目有什么可以改进的地方
让一个元素消失的几种做法,有何不同,对子元素的影响
如何遍历对象(接下来会问有何不同)
搜索框输入需要注意的点(其实还是在问防抖)
原生实现inserAfter
事件委托应用场景,e.target和e.currentTarget区别
HTTP缓存,对应字段,cache-contron都有那些值
new过程都发生了什么
面试遇到的算法题

排序算法(冒泡,快排)
洗牌算法
v1.2.3 v0.3.0 这样的版本号比大小(找简单方法,不要随便写一个循环的版本)
广度优先遍历
用O(n)的复杂度合并两个有序数组
数组生成树形结构
var arr = [
{ id: 1, value: "节点1", p_id: 0 },
{ id: 2, value: "节点2", p_id: 1 },
{ id: 3, value: "节点3", p_id: 1 },
{ id: 4, value: "节点4", p_id: 2 },
{ id: 5, value: "节点5", p_id: 0 },
{ id: 6, value: "节点6", p_id: 5 },
{ id: 7, value: "节点7", p_id: 6 },
{ id: 8, value: "节点8", p_id: 6 },
];
// 输出
[{
"id": 1,
"value": "节点1",
"p_id": 0,
"children": [
{
"id": 2,
"value": "节点2",
"p_id": 1,
"children": [
{
"id": 4,
"value": "节点4",
"p_id": 2,
"children": []
}
]
},
{
"id": 3,
"value": "节点3",
"p_id": 1,
"children": []
}
]
},
{
"id": 5,
"value": "节点5",
"p_id": 0,
"children": [
{
"id": 6,
"value": "节点6",
"p_id": 5,
"children": [
{
"id": 7,
"value": "节点7",
"p_id": 6,
"children": []
},
{
"id": 8,
"value": "节点8",
"p_id": 6,
"children": []
}
]
}
]
}]
数组L型输出
// L型输出
var arr = [

['1', '2', '3'],

['4', '5', '6'],

['7', '8', '9'],

];
// 输出大致顺序 1 4 7 8 9 2 5 6 3
数组求排列组合
// 数组排列组合
var arr = [
['A', 'B', 'C'],
[1, 2, 3],
['X', 'Y', 'Z'],
];
// 输出类似 A1X A1Y A1Z ...
实现一个函数 find(obj, str),满足
var obj = {a:{b:{c:1}}};
find(obj,'a.b.c') //1
find(obj,'a.d.c') //undefined
乒乓球比赛判断输赢(这个表达起来费劲,但是是个贴合实际开发场景的例子.不常见,但是不难)
这些是能回忆出来的部分,算法题普遍没有那么难,递归比较多,另外能用简单的方式就用简单的方式,这样才能凸显能力.

posted @ 2021-03-08 23:24  布里秋秋  阅读(99)  评论(0)    收藏  举报