数字马力前端一面 郑州
1.自我介绍
2.介绍一下实习项目背景
3.websocket在项目中起到的作用,如何用antv做的动态图
4.讲一下http和https的区别,以及加密过程
5.讲一下http1和http1.1以及http2的区别
6.讲一下协商缓存和强缓存
7.讲一下localstoreage和sessionstorage和cookie
8.讲一下事件循环机制
9.讲一下promise
10.用过哪些promise(all,race),面试官拓展了一个处理并发的promise方法
11.看代码说输出
setTimeout(() => {
console.log("1")
});
new Promise((resolve) => {
console.log("Promise")
setTimeout(() => {
console.log("2")
});
resolve();
}).then(() => {
console.log("then")
})
setTimeout(() => {
console.log("3")
}, 50
console.log("log")
输出结果是什么
12.说一下数组的方法
13.数组去重有哪些思路(set,fliter+indexof,reduce)
14.用reduce实现数组求和以及扁平化
const numbers = [1, 2, 3, 4, 5];
const sum = numbers.reduce((accumulator, currentValue) => {
return accumulator + currentValue;
}, 0);
console.log(sum); // 输出:15
function deepFlatten(arr) {
// 使用 reduce 方法遍历数组
return arr.reduce((acc, val) => {
// 如果当前元素是数组,递归调用 deepFlatten
if (Array.isArray(val)) {
return acc.concat(deepFlatten(val));
}
// 否则,将当前元素添加到累加器数组中
return acc.concat(val);
}, []);
}
15.说一下js中的var,let,const的区别
for(var i=0;i<10;i++){
setTimeout(()=>{
console.log(i)
})
}
for(let i=0;i<10;i++){
setTimeout(()=>{
console.log(i)
})
}
16.判断数据类型的方法
17.原型链有了解吗(实现链式调用)
class Calculator {
constructor(value) {
this.value = value;
}
add(number) {
this.value += number;
return this;
}
minus(number) {
this.value -= number;
return this;
}
multi(number) {
this.value *= number;
return this;
}
div(number) {
if (number === 0) {
throw new Error("Cannot divide by zero.");
}
this.value /= number;
return this;
}
pow(number) {
this.value = Math.pow(this.value, number);
return this;
}
}
18.说一下vue2和vue3响应式的区别
19.为什么有proxy,vue2还要用object.defineProperty(没了解过)
20.说一下react的钩子
21.你觉得hooks可以写在条件语句里吗,为什么
22.react组件间通信方式
23.react全局管理工具除了redux(mobx和reroil)
24.介绍一下另一个项目
25.如何实现大文件上传的
26.反问
#数字马力[话题]##数字马力##字节##快手##美团#
查看6道真题和解析