一面:
·你做了什么优化
·怎么实现垂直居中·
·你了解线程和进程的概念吗
·浏览器是线程还是进程,单线程还是多线程
·浏览器的渲染机制
·js放中间会js阻塞,但我就想放中间,如果不造成阻塞,应该用什么方法(defer)
·defer和async的区别
·深浅拷贝(原理,堆栈,指针)
·js的数据类型
·ajax的实现原理
·不用promiseAll,能实现等三个异步函数执行完之后再执行下一个异步函数吗?
要的是等三个异步函数同时执行,等时间最长的那个异步函数执行完之后,再执行后边的。
采用栈,将异步函数的结果存进栈里...
手写代码: 找到相应节点的某个值
var array = [{
name: 'test1',
id: 1,
test: '1212',
child: [{
name: 'test2',
id: 2,
child: []
}, {
name: 'test3',
id: 3,
}]
}];
var id = getTextToId(array, 'name', 'test3', 'id'); //3
答案
function getTextToId(data, key, value, code) {
// 数组,遍历当前层
for(let i = 0; i < data.length; i++) {
// 递归出口
if(data[i][key] === value){
return data[i][code];
}
if(data[i].child && data[i].child.length > 0){
const resrult = getTextToId(data[i].child, key, value, code);
if(resrult)
return resrult;
}
}
}
二面:
-你是怎么实现权限控制的
-深浅拷贝
-前端路由和后端路由有什么区别
-路由的两种模式是什么
-你知道路由是怎么实现的吗,用到了浏览器的哪些api
-插槽
-虚拟dom,虚拟dom的好处,手动触发dom,和虚拟dom谁更好
-nexttick(原理)
-vue的几种传参方式
-知道防抖和节流吗
-vue3比vue2有哪些不同
-ts用过吗,ts中的interface
-node.js用过吗,还知道哪些打包工具
-node.js 中的 commen.js和G**有什么别去
-webpack的plugin和loader的区别
-你知道前端部署吗
-知道前端当前的发展趋势吗
-http和https,证书的作用
手写代码:
eventbus实现原理
//全局变量
var map = new Map();
// 发送事件
function emit(name, date) {
let set = map.get(name);
console.log("emit", set);
// for(let fun in set){
// console.log("执行", fun);
// fun(date);
// }
set.forEach(fun => {
fun(date);
});
}
// 接收事件
function revive(name, fun){
let set = map.get(name);
//判断当前事件是否存在缓冲区
if(set == null){
set = new Set();
}
set.add(fun);
map.set(name,set);
console.log("set", set);
console.log("map", map);
}
let fun = function(a) {
console.log(a);
}
revive("cc", fun);
emit("cc", "a");
三面(技术少,沟通能力多)
1.实习的时候的项目
2.你最大的收货
3.为什么没有提到团队协作能力
4.vue和react的区别
5.组件的生命周期
然后各种沟通能力的情景题
如果老师布置了任务,你是小组长,你会怎么做
有人消极怠工你会怎么办?
那人家就是不听你的,还是不干活
...