近期面经总结(2.14-3.2)

想着要开暑假实习了,先投点日常实习(基本都是小厂)看看自己的八股还记得哪些,同时也是督促一下自己的学习(最近有点懒惰了),下面是这些天的面经总结。

公交云

一面,2.14,20min

自我介绍(面试官让说细一点,直接照着简历念一遍)

实现经历相关

项目经历相关

用过哪些ES6相关API

详细说说Promise

有没有用过Promise.all和Promise.rece

怎么用这两个方法实现异步并发执行控制器的

说一下let和const

ES6的数组方法用过哪些

map和forEach的区别

React接触Class多和hooks多

说说useEffect、useState

了解过Redux和mobx吗

说一下useContext

有用过useReducer吗

项目中axios有封装过吗

怎么封装的,用到了axios的哪些方法

有自己去配置过webpack吗

webpack的执行流程

反问: 那边的技术栈是react吗,说是react,但有可能会有老项目里面使用的class写法。一共有几轮面试,说还有一轮技术面+hr面

总结:基本都是八股,好多都说的不太清楚,webpack了解的也还不够多。

二面,2.16,10min,被鸽了半小时,给hr打电话说是在开会

用1-2分钟总结一下上次面试内容

上次面试有哪些是没有回答好的

通过做这些项目能不能介绍一下你的软技能,思想,能力,方法论(到这里已经感觉到这次不是技术面了,应该是领导面)

以你现在的视角去看以前做的项目,有哪些地方还可以提升,包括技术和非技术方面

有女朋友吗(???)

能接受996吗(???)

大概什么时候能到岗

总结:实习居然也有这种面试,还以为只有社招会有,涨姿势了

ZStack

一面,2.17,40min,电话面

实习项目相关

低代码原理(JSONschema,数据域)

原型链

Promise

微前端有了解吗

项目的人员分配,负责什么

虚拟列表(固定高度,动态高度)

大文件分片上传

ssr项目

深浅拷贝

ts有了解吗

介绍react(可中断渲染,时间分片,diff)

总结:总体难度还好,第一次被问到微前端,要学不过来了:c

星环科技

一面,2.17,30min

http请求头有哪些

强缓存和协商缓存

http和https

http请求方法

http状态码

rest请求风格

网络攻击(xss,csrf),前端如何避免

实习中有没有遇到的css相关问题

去重有什么好方法(性能上)

JavaScript执行原理

原型链

ajax按顺序发送请求

反问:

要求vue但我只会react会有影响吗,说还是希望能够尽快上手

总结:太久没看计网相关的了,全寄了

字节-飞书

一面,2.20,75min,后面一大半时间都在做第一道场景题。。。

自我介绍

项目中哪些点是有挑战的,以及如何解决的

对原型链有了解吗

使用new实例化的具体过程

class的static属性存放在哪里

class中的私有属性是如何实现

闭包了解吗

promise有了解吗

Promise.race()和Promise.all()的区别

Promise.all()是所有的元素状态变为fulfilled才会执行then方法,如何实现当里面有个元素状态变为rejected态后依然执行then方法

说一下react的生命周期(没用过类式组件,说了一下useEffect)

useCallback返回的值作为其他hook的依赖时(其他的useEffect,useCallback),会导致当前这个useCallback更新时引发其他的useEffect和useCallback的更新,如何避免。(这里没理解到,没答上来)

高阶组件有了解过吗

对应哪一个设计模式的实现(寄,后面设计模式都寄了,要补一补设计模式了)

了解过哪些设计模式

说一下观察者模式和发布-订阅模式的区别

有在哪些地方见到过这些模式的使用吗(js的事件)

说说了解的react底层渲染原理

react分片渲染具体是怎么实现的

如何保证上传每一个文件切片和后端接收到的文件切片对应(给每一个切片加上唯一标识,和切片一同发送给后端)

说一下断点续传

如何实现用户刷新页面任然可以继续上传

场景题

// 实现scheduler函数(异步并发执行控制器)
// 第一次见,磨蹭了半天还是没写出来

const request1 = () => {
  return new Promise((reslove, reject) => {
    setTimeout(() => {
      reslove(1)
    }, 800)
  })
}
const request2 = () => {
  return new Promise((reslove, reject) => {
    setTimeout(() => {
      reslove(2)
    }, 400)
  })
}
const request3 = () => {
  return new Promise((reslove, reject) => {
    setTimeout(() => {
      reslove(3)
    }, 500)
  })
}
const addPromise = scheduler(2);
addPromise(request1).then((res) => {
  console.log(res)
});
addPromise(request2).then((res) => {
  console.log(res)
});
addPromise(request3).then((res) => {
  console.log(res)
}); 
/**
 * 输出
 * 2
 * 1
 * 3
 */

// 实现
function scheduler(limit) {
  const exetuing = [];
  return async function (fn) {
    if (exetuing.length >= limit) {
      console.log(exetuing)
      await Promise.race(exetuing)
    }
    const p = fn().then(res => {
      exetuing.splice(exetuing.findIndex((item) => item === p), 1)
      return res
    })
    exetuing.push(p)
    return p
  }
}
// 实现Event
const event = {
    on() {}, // 绑定事件
    off() {}, // 移除事件
    once() {}, // 触发一次
    trigger() {}, // 触发事件
}

// 需要注意移除事件时,会移除所有相同引用的事件

反问

总结:React的Hooks的依赖处理、设计模式和class原理还要多看看。场景题太菜了,得多写写。

安恒信息

一面,2.24,20min

学了哪些课程

盒模型的构成

普通盒模型和怪异盒模型的区别

居中布局了解哪些

了解BFC吗

margin在垂直方向上有重叠怎么解决

js的基本类型

基本类型和引用类型有哪些

var,let,const的区别

深拷贝和浅拷贝的区别

用过数组的哪些方法

forEach和map的区别

删除数组中的某个数可以用哪些方法

filter和splice对数组的操作有什么区别

箭头函数和普通函数的区别

主要使用React还是vue

组件间的通信

有用过redux吗

git push的时候要注意什么

git reset和git revert的区别

虚拟列表可视区的高度是怎么控制的

项目主要是做什么的

反问

总结:git和redux还是要在看看相关的原理

字节-数据机器人

一面,2.27,60min,三战了,这次至少过个一面吧

自我介绍

说说做的项目里那个有难度

虚拟列表的数据量(上面有说到虚拟列表)

虚拟列表元素的高度固定吗(虚拟列表定高和不定高)

滚动过快会不会出现白屏(上下多渲染几条做缓冲)

那快速拖动滚顶条呢(这个没答上来)

为什么在b站实习周期这么短

这次能实习多久

实习做了些什么

低代码平台整体的设计原理

在低代码平台中组件和组件间的交互是如何实现的

如何实现一个不定宽高div的水平垂直居中

了解过闭包吗

代码输出题

var a = 10
function bar() {
	console.log(a)
}
function foo() {
    var a = 20
    bar()
}
foo() 
// 输出10
// 考察js的静态作用域
function add() {
	var n = 20
	function f() {
		n++
		console.log(n)
	}
	f()
	return f
}

var n = 10
function x = add()
x()
x()
console.log(n)

// 输出
// 21
// 22
// 23
// 10
// 考察闭包

说说事件循环机制

哪些是宏任务,微任务

然后相关的代码输出题

具体代码内容记不住了,有个坑是promise没有调用reslove和reject方法,后面的then()是不会执行的

讲一下react fiber

react的时间分片底层调用的是哪个api(分浏览器环境和node环境,浏览器下是MessageChannel,node下是setImmediate)

MessageChannel属于宏任务还是微任务

了解过http的缓存吗

Etag和Last-Modified的优先级

场景题

// 实现combin函数,combin函数的功能如下
const sayHello = (...args) => `hello, ${args.join('AND')}`
const toUpper = (str) => str.toUpperCase()
const f = combin(
	sayHello,
    toUpper
)
console.log(f("tom", "alice")) // HELLO, TOM AND ALICE

// 实现
function combin(...fns) {
    return function(...args) {
        let curArgs = args
        for (let fn of fns) {
            const res = fn(...curArgs)
            curArgs = [res]
        }
        return curArgs[0]
    }
}
// 如果combin接受方法返回值是promise这种如何处理(async/await)
function combin(...fns) {
    return async function(...args) {
        let curArgs = args
        for (let fn of fns) {
            const res = await fn(...curArgs)
            curArgs = [res]
        }
        return curArgs[0]
    }
}

反问

总结:这次难度还好,基本上都答上来了,但是输出题还是要多注意细节。

百度-搜索产品

一面,2.28,50min,偏偏这次网络卡,好多问题没听清又问了一遍,巨尴尬。

自我介绍

能实习多久

flex实现水平垂直居中

从后往前排列怎么实现(flex-direction)

说说flex:1

弹性布局怎么实现

flex的兼容性

对css动画的了解

一个div在500ms内先放大1.2倍在缩小0.9要如何设置(不会,寄)

css的选择器了解多少

使用!important会有什么影响

有两个div,如何选择后面个div(:last-child)

如果要选择倒数第二个要怎么选择(:nth-last-child())

了解兄弟选择器吗

less和css有什么区别

说说ES6

箭头函数和普通函数的this指向

原型和原型链

原型链的应用场景

如何改变一个类所继承的对象

Promise主要用来解决什么问题

如果有多个promise如何一起执行

Promise.all和Promise.race有实际用过吗

直接上传一个大文件会有什么问题

对webpack的了解

如何修改文件入口,以及多入口如何配置(entry)

对插件熟悉吗(插件没怎么了解过,说了一下loader)

img-loader是怎么解析的(不会,寄)

浏览器渲染页面过程

有了解过GPU和CPU这一块吗(没有。。。)

css哪些属性会触发重绘

重绘和回流哪个对性能影响大

手写快排,写到一半写不出来了,说了一下快排原理以及时间复杂度,然后给换了一个,计算斐波那契数列(第一次写算法。。。大寄特寄)

反问:

会用到node吗,说会(寄)

前端框架使用React吗,说不是(又寄)

总结:虽然都是八股,但是好多都不会。。。算法也要加强了。

字节-数据机器人

二面,3.1,30min,第一次面字节这么快结束的

自我介绍

在实习中做的比较有挑战或者有价值的点

对低代码平台的哪些功能做了抽象

对js文件处理的时候有考虑过安全问题或者注入问题吗

还是实习项目相关

有用过vue吗(无)

你认为React哪些地方做的好,哪些地方还可以改善(说了一下React的任务调度,以及useEffect在使用上的心智负担)

说一下盒模型

如果让你实现一个富文本编辑器,你觉得哪些地方是需要注意的(文本内容,非文本内容)

说一下计算机网络分层(TCP/IP四层网络模型,和OSI七层网络模型)

说一下快速排序的整个过程

算法题,1.两数之和(????字节居然会出easy,感动麻了)

后面问能多久到,能实习几个月

总结:有些问题都是基于场景的,感觉这种只有靠自己的经验积累了。

百度-搜索产品

二面,3.2,60min。

对上一次面试的总结

怎么学前端的

position有哪些属性,区别是什么

有了解过position:sticky吗(粘性定位)

说一下px,em,rem的区别

用typeof会返回哪些值

typeof null为什么返回object(×,但面试官说是跟原型链相关)

如何精确判断一个对象的类型(instanceof,Object.tostring.call)

dom选择器有哪些

querySelectorAll返回什么(NodeList实例)

如何将其转换为数组(Array.from(),扩展运算符)

call,bind,apply区别

在哪些地方会用到这些函数呢

箭头函数可以new吗,为什么

Promise链式调用原理,解决了什么问题

说说Promise.all,调用该方法时里面的Promise对象是串行执行还是并行执行(并行)

async/await出错时怎么捕获

type和interface的区别(×)

require和import的区别(×)

http缓存

Etag使用的什么算法(说了一个md5)

Etag和Last-Modified的优缺点

跨域是什么,怎么产生的,如何解决

服务端怎么解决跨域

有了解过JSONP吗

cookie,session,storage的区别(cookie和storage都有限制大小,session是存放在服务端的)

怎么让cookie不被获取(服务端添加http-only)

前端安全了解哪些

如何监听页面加载完成

onload和DOMContentLoaded的区别(×)

手写深拷贝、发布-订阅

反问

总结:node和ts相关的是一点都没答上来。

全部评论
实习都这么卷。。
1 回复 分享
发布于 2023-03-07 10:15 湖北
请问一下大佬在哪投的简历呀
点赞 回复 分享
发布于 2023-02-28 21:48 河南

相关推荐

11 68 评论
分享
牛客网
牛客企业服务