字节前端搜索日常实习
一面
- ES6的新特性你知道哪些?
- 异步编程解决方案Promise,详细说一下?
- Promise为什么可以在状态变化之后再获取结果?
- 事件循环机制说一下
- 了解浏览器的缓存策略吗?
- 自己做项目的时候遇到的最有挑战的事情?
- 算法题。一个匹配模式和一个字符串,检验字符串是否符合匹配模式。比如模式abba,字符串dog cat cat dog就返回true;但是如果是dog dog dog dog这种就返回false。(用哈希表其实很快就能解决,只是最后需要考虑不同的key不能有相同的value,处理后一种情况。这里我像个猪逼,一直没想到最后一种边界情况的处理方式)
- 代码题
var a = function(){this.b = 3} var c = new a() a.prototype.b = 9 var b = 7 a() //分别输出什么?为什么? console.log(b) console.log(c.b)
上面这段代码放到一个立即执行函数里面执行,会有什么不同吗?为什么?(这里脑子有点被绕晕了,其实牢记直接以函数形式被调用的时候,函数的this默认指向window就可以了。我怎么这么菜啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊)
反问:
- 学习建议。建议我多做项目,多问自己为什么,多去钻研才能进步。
- 广度足够了不用过度追求,技术不仅要会用,还要学习它的原理和设计思想,扎根基础才能走的更远。
- 部门业务和技术栈。
面试官人挺好,代码题答得不好也会引导,最开始问八股的时候他应该在出代码题,整得我老紧张了哈哈哈。估计是凉凉了,但是面试官最后给的建议很中肯,继续打基础去。第一次面试大厂仿佛回到了刚开始面试的时候,脑子一片空白,希望后面还能得到大厂的面试机会吧。
二面
- webpack从0到1构建一个项目,说一下思路。
- webpack的优化手段,除了持久化缓存、多线程打包、splitChunk还有哪些?
- TreeShaking为什么需要基于ES Module才能实现?
- webpack5的Module Federation了解吗?他跟npm包有什么不一样吗?
- 场景题:CSS实现两个子元素2:1比例分割父元素。
- flex-grow flex--shrink flex-basis具体都有什么用?
- Promise实现一个超时请求控制。(race)
- Promise.all Promise.race手写一下。
- http和websocket协议的不同点?项目里面用过吗?
- 输入url到显示页面的过程。
- 重绘重排。
- 怎么样利用合成来减少重绘重排?
- Vue双向绑定的原理说一下。
- 响应式原理详细说一下,Vue2的响应式有什么问题?
- Vue3为什么采用了Proxy?这里好像要我说一下Proxy如何polyfill,完全没想法。
- 算法题。给定一个字符串,要求处理之后字符串中不含有b以及连续的ac。(栈)
- 设计一个图片懒加载方案。
- 原生实现轮播图,说一说实现的思路。
- 还有其他的offer吗?
- 每周能实习多久?
反问:
- 学习建议。
- 未来的发展。
二面上强度了,webpack问麻了。约了下周三继续面,希望能过。
三面
- 项目是自己想的吗?
- 做项目学到了什么?
- 如果没有后端接口,前端怎么提前模拟数据请求?
- axios的拦截器知道吗?拦截器有什么用?
- 自己封装过组件吗?一个好的组件的标准应该是什么?
- 吸顶的效果是怎么实现的?如果需要你原生实现呢?
- 怎么从前端的角度减少首页的白屏时间?
- Vue2有哪些钩子?网络请求应该放在哪里?如果是使用骨架屏或者加载动画的话,请求又应该放在哪里?
- 如果减少请求的数据之后,首页渲染时间还是不达标?应该怎么办?
- 怎样加快网页二次渲染速度?(除了缓存、懒加载之外的方法)
- Vue2和Vue3的响应式对于数组而言有什么不同?
- webpack怎么学的?如果一个项目有成百上千个入口文件怎么办?
- Promise.all和Promise.race说一下,应用场景有哪些?
- 从你自己的角度看,TypeScript有用吗?
- 合作开发项目的时候遇到过项目成员意见有冲突的情况吗?怎么解决的?
- 想从实习里面学到什么?倾向于业务还是工程化?
- 如果开发过程中遇到了一个问题?你倾向于使用什么方式解决?
反问:
- 建议我多补一补计算机基础(前两面算法写的不好)。
提前一首凉凉送给自己。问的其实都是一些思考层面上的问题,自己做项目的时候想的还是太少了。我只是个无情的API调用者,不是前端开发。
#前端实习面试##日常实习##我的实习求职记录#