本来投的飞书,被挂了,然后国际电商部门捞起来了。面试官人很好,但是我的知识积累还有待加强,基本全程被拷打。。。。。。。。。
面试官查看简历后说我是科班出身,所以会问一些计算机基础。
进程和线程的区别
悲观锁和乐观锁
从构建请求到渲染页面发生的过程(越详细越好)
页面输入错误网址发生了什么
如何访问内网ip 正向代理和反向代理
cdn dns
强缓存和协商缓存
如何在强缓存和协商缓存都可以命中的情况下绕开缓存机制直接走请求
301 302 303 含义以及应用场景
tcp三次握手
简单请求 预检请求
服务端如何知道post请求query参数获取完毕
http 1.0 2.0 3.0区别
udp使用场景
如何使用udp建立可靠连接 quic协议
rendertree渲染流程
defer async 还有没有其它方法
对于首页需要加载大量静态数据(css文件,图片,视频)导致的白屏如何优化
promise顺序输出题
setTimeout(() => {
console.log(1)
}, 0)
new Promise((resolve) => {
console.log(2)
resolve(3)
}).then(
res => {
console.log(res)
Promise.reject("err")
},
err => {
console.log("err", err)
}).catch(err => {
console.log("catch", err)
})
算法题
const list = [{
id: 1,
name: "one"
}, {
id: 2,
name: "two"
}, {
id: 3,
pid: 2,
name: "three"
}, {
id: 4, pid: 5,
name: "four"
}, {
id: 5,
pid: 2,
name: "five"
}, {
id: 6,
pid: 2,
name: "six"
}, {
id: 7,
name: "sevven"
}]
const transform = function (list) {
///XXX
return list
}
[
{ id: 1, name: "one" },
{
id: 2,
name: "two",
children: [
{
id: 3,
pid: 2,
name: "three"
},
{
id: 5,
pid: 2,
name: "five",
children: [
{ id: 4, pid: 5, name: "four" }]
},
{
id: 6,
pid: 2,
name: "six"
}]
},
{
id: 7,
name: "sevven"
}
]