今日头条前端三轮面试面经

作者:abc12
链接:https://www.nowcoder.com/discuss/105513
来源:牛客网

刚面完今日头条三轮面试,发个面经反馈一下牛客网。

一面(上午9:30)
一面问的问题非常基础,反正就是很多面试基本会问的东西。
常用的块级元素和行内元素有哪些
块级元素的特点
img是什么类型的元素
说一下你了解的浮动
为什么要清除浮动?举个实际场景
说一下你了解的盒模型
css3用过什么
box-sizing的各个属性有什么区别
float和position一起用是什么效果
rem用过吗?做不同手机的适配怎么做?
写个二分查找
箭头函数特点?
var a = {
b: ()=> {console.log(this);},
c: function() {console.log(this);}
}
a.b(); // ???
a.c(); // ???
vue的双向绑定和依赖收集
vuex是做什么的?缺点?
cookie和session区别?
后端怎么存储session?
讲一下登录验证全过程(涉及session)
进程和线程的区别?
webpack3升级到4为什么会提升速度?
webpack优化有哪些?
大概就这么多了,总体来说比较简单都是常见的问题,我之前写二分查找的时候面试官还给我挖坑,问我乱序数组怎么二分查找?我说二分查找的前提条件就是数组有序。面试官也没说什么了。然后hr就通知二面

二面(上午11:15)
二面比一面难一点,但是也是挺常见的问题,分为三种方向:前端方向、网络方向、算法方向。
script的async有什么用
手写懒加载(考虑防抖和重复加载问题)
手写bind
给页面注入50万个li怎么做提升性能?
fileReader用过吗?base64编码原理?
setTimeout一定会按时执行吗?
讲一讲event loop(微任务、宏任务等)
https的过程?
http请求的报文头部是什么?
http有哪些方法?option是做什么的?
你一般用的MIME类型有哪些?
http缓存?
手写快排
分治算法
只记住这么多了,其他的印象不深刻,反正不会很难。

三面(13:50)
经历了前两轮面试本来我是很自信的,然而三面面完只剩下懵逼…面试官不问基础,一上来就让我做题
实现一个简单的打桌球游戏,构建一个小球类、球杆类、球桌类,在游戏主类中实现核心算法。
题还没完成就说不用写了,我大概了解你的思路了。然后就问我下面几个问题
github那些项目怎么做的,为什么想做这些?
你在阿里实习做过最难的最深入的东西是什么?
webpack的css-loader原理讲一下
然后面试就结束了,负责通知的hr给我说两周内出结果让我耐心等待。本来以为自己凉了因为没有hr面,结果在头条的师兄说这次是技术面,过段时间hr再统一面试…那再等等吧,希望大家秋招都能拿到满意的offer~

### 拼多多前端开发社会招聘面试经验分享 拼多多作为国内知名的电商平台之一,其技术团队对于前端开发者的需求也较为旺盛。以下是关于拼多多前端开发社会招聘的一些常见面试经验和技巧。 #### 1. **面试流程概述** 拼多多的前端开发岗位通常会有三轮到四轮的技术面试[^1]。具体的面试轮次可能因候选人背景的不同而有所调整。每一轮面试都会涉及不同的技术领域和技术深度测试,旨在全评估候选人的技术水平和解决问题的能力。 #### 2. **技术考察重点** 在拼多多的前端开发面试中,主要会考察以下几个方的技能: - **基础知识** 包括但不限于 HTML、CSS 和 JavaScript 的核心概念。例如 DOM 操作、事件机制、闭包、原型链等知识点都是常见的考点[^5]。 - **框架掌握程度** Vue 是目前主流的前端框架之一,因此对 Vue 的深入理解是非常重要的。可能会被问及 Vue 的生命周期钩子函数、组件通信方式以及虚拟 DOM 的原理等问题。 - **算法与数据结构** 虽然前端开发更侧重于界交互设计,但是基本的数据结构(如数组、栈、队列)和常用算法(排序算法、查找算法)仍然是不可或缺的一部分[^4]。 - **工程化能力** 对 Webpack 等构建工具的理解及其配置方法也是重要的一环。此外,代码版本管理工具 Git 的熟练运用同样会被提及[^3]。 - **实际项目经验** 面试官往往会通过询问过往参与的具体项目细节来判断应聘者解决复杂业务场景问题的实际动手能力和思考逻辑。 #### 3. **软实力考量** 除了硬性的技术考核之外,沟通表达能力、抗压能力和学习适应速度同样是不可忽视的因素。良好的心态能够帮助你在对挑战时保持冷静并给出合理解答[^2]。 ```javascript // 示例:JavaScript 中的一个经典题目——深拷贝实现 function deepClone(obj) { if (obj === null || typeof obj !== 'object') return obj; const clone = Array.isArray(obj) ? [] : {}; for (let key in obj) { if (obj.hasOwnProperty(key)) { clone[key] = deepClone(obj[key]); } } return clone; } console.log(deepClone({a: {b: [1, 2], c: 3}})); ``` 上述代码展示了如何用递归的方式完成对象的深复制操作,这是经常出现在各类公司笔试或机试题中的例子之一。 --- ####
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

半夏_2021

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值