本人是2021届毕业生,去年疫情在家找实习真的是困难重重,好歹最后有一个还不错的结果,去了腾讯微保实习(这里要说一下这个公司是真的超级好,尤其是适合妹子~),不过找实习面试中的问题没有记录。正好今天整理发现了秋招的时候记录了几个公司的面试过程,下面就简单说一下,希望对大家有帮助。
好多问题都是我之前总结的所有我看过的面经贴中的问题,有兴趣的可以看一下:点这里!!!
公司一:vivo(南京 offer)
秋招参加的第一个面试就是 vivo提前批,大概六月份就开始了,当时还在实习,还是偷溜出去面试的(小尴尬),记忆中是两轮技术+一轮hr,这次问题没有分具体几面,直接总结下:
- 判断一个单向链表是否为循环链表
- 使用快指针(步长为2)和慢指针(步长为1)
- 如果快指针指向了null则是单链表
- 如果快指针和慢指针重合了则是循环链表
- 实现事件绑定的几种方法及其区别(这在我上一篇面经帖子中详细说明过了)
- 行内绑定 onclick="" this指向window
- 动态绑定 btn.onclick = function(){} this指向当前操作的dom对象
- 事件监听 addEventListener(eventName,handle,useCapture) 或 attachEvent()
事件冒泡和事件捕获
js的选择器有哪些
- 原生js选择器:getElementById()、getElementsByName()、getElementsByTagName()、getElementsByClassName()、querySelector()、querySelectorAll()
- JQuery选择器:ID、标签、class、*所有元素
- 层叠选择器
- 过滤
异步的实际应用
比如:ajax请求,可以通过哪些方法实现,有什么区别:回调、事件监听、promise、generator、async/await常用的表单控件
- 表单元素:form
- 文本/密码: text password
- 单选/复选:radio checkbox
- 按钮:submit reset button
- 隐藏域/文件域:hidden/file
- 选项框:select>option
- textarea: 多行文本输入控件
vue双向绑定的原理
为什么学前端,如何学前端,规划
为什么要加入vivo
自身优缺点
vivo其实面试是算比较简单的,感觉只要过了笔试和简历都比较稳了,毕竟招的人也多,可以先拿下来保底~
公司二:贝壳(北京 offer)
贝壳是有上海和北京两个点,但是基本上都在北京,上海好像只有行政部门,我参加的也是提前批,听贝壳hr讲这是不加班的,也不知真假,如果提前批能过贝壳的培养方式好像蛮不错的。当时一面面试官说他待得蛮舒服的,然后针对提前批是有不同的培养的(似乎是的)
这里的面试问题也包括了我在面试之前刷的牛客当时热乎的面经贴(临时抱佛脚)
- HTML+CSS
- 左边固定,右侧自适应
- html5新特性(屏幕截图)
- 在一行上等分三个盒子
- 移动端自适应
- 设置文字大小为6px
- css优先级
- css3新特性
- flex
- 水平和垂直居中
- 清除浮动
- 重绘和重排
- 三栏布局多种写法
- JS
- 数据类型
- const、let和var的区别
- null和undefined的区别
- 事件代理
- 原型链
- 箭头函数
- 异步怎么按照一定顺序执行
- 事件循环
- 防抖节流
- 页面刷新
- 闭包应用及其场景
- 正则表达式
- 设计模式
- 框架
- Vue双向绑定以及ES6的proxy;vnode存在哪里
- 组件通信方式
- 局部作用域样式:在style标签中设置scope
- vue-router,history和hash?
- vue实现一个div拖拽
- 虚拟dom
- key的作用
- 生命周期
- http
- 协商缓存和强制缓存
- 跨域
- content-type的类型
- 浏览器本地存储
- html执行机制即浏览器加载机制
- 代码层面和网络层面的性能优化
- 状态码
- body的格式
- base64格式的输入和输出
- 搭建工具
- webpack作用
- webpack用到了哪些loader和plugins
- 当css-loader和style-loader冲突怎么解决
- babel的作用
- loader的作用和输出
- 算法
- 求树两个节点的最近公共父节点
- 层次遍历二叉树
- 找出数组的中间数
- 求三个数之和
- 公司
- 对贝壳的了解
- 为什么想来贝壳
- 选择offer的因素
公司3:滴滴(555)
从这里开始就是纯本人亲身经历的面试问题了,滴滴我当时真的花了好多心思准备的!奈何还是太菜,没过!我参加的依旧是提前批(开始得比较早),面试是那种一天面完的,过了就直接下一面,虽然很残酷但至少不用焦急等结果了。滴滴问的问题也不是说特别难,就是面试官会深究,挖的连亲妈都不认识,好惨的,最终败下了!所以说还是要好好提高自身实力,不要像我一样~
一面 2020.8.5
- http和https的区别,引出https请求过程
- vue双向绑定原理
- defineproperty原理,在es6中可以用什么替代
- 继承的几种方式,手写原型链继承
- 知道防抖和节流吗,手写一下(情景为输入框中输入完进行搜索)
- vue如何监听数组
- 实现三角形
- webpack创建过程
- 小程序原理,为什么可以在微信中渲染出来
- 有接触过小程序跨端吗
- 了解的设计模式,说一下发布订阅
- 什么是闭包,应用场景
二面
我当时也是匆忙学了Vue,懂的比较浅显,没想到全部都是问的这个,所以好好扎实的学好一门框架!
- vue双向绑定原理,多个组件使用同一个data属性时怎么监控?在哪一个阶段完成监控
- Vue为什么需要虚拟dom(vue双向绑定明明可以对应到具体哪一个节点)
- Vuex原理
- Vuex和全局变量的区别
- webpack实现过程,是怎么完成解析依赖的?
- loader和plugin的区别
- 有没有使用过node
- 入职第一份工作的规划
然后....然后就没有了
中间还面试了一些不是纯互联网的公司,问的问题也不是纯前端的,这里就不记录啦!这个时候其实心里面还是失落的,一直想去上海,可是投的上海的公司都被毙了,就在这时,一位天使小姐姐出现了,当时还是看电影的时候接到了电话,一听是杭州抖音,我都打算拒绝的,可是小姐姐太甜了!我就开始了这段艰苦但是非常值得的面试历程!hr小姐姐一直鼓励我,每场面试给我约时间,然后问我复习好了没有,没有的话帮我推迟一下下,在这里跪谢!说啦,说正经的哈哈哈哈~
公司4:字节-抖音
一面 2020.8.24
- 给你一个Dom树节点,找出下面所有的div标签节点
//树的广度遍历 function getNodeNum(node) { let children; let nodeList = []; let count = 0; nodeList.push(node); while(nodeList.length) { let curNode = nodeList.shift(); if(curNode.nodeName === 'div') { count++; } children = curNode.childNodes; for(let i=0;i<children.length;i++) { nodeList.push(children[i]); } } return count; }
- 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
//找到奇数就和前面的偶数依次交换 function split(arr) { for(let i=0;i<arr.length;i++) { if(arr[i]%2===1 && i>0) { let cur = i; for(let j=i-1;i>=0;j--) { [arr[j], arr[cur]] = [arr[cur], arr[j]]; i = j; } } } return arr; }
- css:清除浮动,两列布局左边固定右边自适应
- rem原理,vh/vw原理及缺点
- js:数据类型的判断,new创建实例的过程步骤,跨域,proxy和object.defineProperty的区别,模块化几种方式的区别
- Vue:响应式原理,说一下Object.property操作数组有什么问题
- 源码:new Vue的过程
- 对称加密和非对称加密,https握手过程
- 线程和进程的区别
整个面试差不多50min,我以为我挂了,就跟hr小姐姐说谢谢她的照顾,然后她告诉我过了!哈哈哈哈,安心准备二面
二面 2020.8.28
- 说一下你的研究生课题,中间碰到的困难,你怎么解决的,收获了什么,聊得比较愉快大概15分钟
- 淘宝首页布局题目:flex和非flex(给你一张图让你设计)
- 买咖啡的题目,只有5元、10元、20元,找零问题,很简单只需要说一下思路
- 中等难度题目:给一个二维坐标,有空位,程序员,产品经理,每个程序员能教会旁边的产品经理写代码,问教会所有的产品经理需要几次,打不到则输出-1
- http分层模型以及每层的原理
- tcp和udp
- 为什么三次握手四次挥手
同样是面完,hr小姐姐直接告诉我过了,面试的时候因为教室突然有老师要用,中途还换了一个地方面试,面试官笑嘻嘻说没事,人真的不错哈哈哈
三面 2020.9.1
这面可能是交叉面?也没问什么问题,而且比较简单,不知道是不是我运气比较好
- 问了一点点实习经历,学到了什么,主要负责什么
- https怎么保证数据不被纂改,我提到了hash比对,就问了我hash算法是什么
- 数组去重的方法,es6和非es6
- js继承的方式,优缺点,es6 extends可以继承多个父类吗?
然后就没有啦?当然也可能是当时面试完太紧张,忘记了一些~
hr面 2020.9.2
问的都是一些常温的问题,能不能提前来实习呀,自己优缺点啊之类的(这个hr小姐姐超温柔的)
再次感谢hr小姐姐和面试官们!
总结
我其实觉得自己学的知识比较少,主要就是把重要的基础知识一遍一遍熟悉,然后刷面经总结自己不会的,加上面了很多公司,知道自己哪里不好就补哪里,所以不要因为说一直碰壁就不想面试了,要相信面的越多成长面的,去的公司就越好!
其实每个公司问的问题都是差不多的,可能就算法题出的不太一样,所以我觉得多看一些面经贴是没错的(看了就要去总结,看自己会不会,不要看完就结束了),然后每个公司面试之前都了解一下该公司的文化啊,准备一下应该问面试官的问题,还蛮重要的(偶尔吹吹🌈)。
以上仅个人见解嘻嘻嘻
全部评论
(3) 回帖