6.24更:
昨天进行了三面,面试官应该是直属leader,先做了自我介绍,然后问题基本围绕框架、我自己做的项目,以及Webpack使用、配置、打包一些相关的问题,还有项目部署在gitee上的问题,用单页面模板封装了个通用tab组件,项目中遇到的最难的问题是什么,还顺带问了一些拥塞控制、进程死锁等偏基础理论的题,问了快排原理,问我学过哪些专业课,问我自己觉得前两轮面试有哪些题答的不好。本来业务问题就答的不算太好,再加上专业课有的确实没学过,有的还忘了,开始和结束,面试官也一直在确认我能去实习的时间,我表明可能去不了,后来也说了hr帮我投的是提前批。情理之中,下午查进度,直接Ended了😭有点难受,不过确实是我自己不够好造成的。
继续改简历,学知识,做项目去了。
QUESTION
一面:
自我介绍
- 为什么选择计算机?为什么选择前端?(本人跨专业考研)
- HTTP有哪些method?
- get和post有什么区别?
- 浏览器会对用户的哪些请求方法做记录?
- 请求的状态码有哪些?
- 浏览器对资源的缓存流程?
- 跨域及跨域方案;为什么写在服务端的东西,前端能获取到?(这个问题是在我解释了JSONP的
<script>
引用,通过在本地的<script>
中调用服务端提供的API来获取数据,存入变量之后提出的,我不是很理解问题的意思,面试官的表述是,“请求不是我发的,我不知道会返回什么样的数据,怎么把拿到的结果,再把它赋给变量”) - 浏览器的事件冒泡及事件捕获?怎么取消事件冒泡?事件代理?
- ul中有多个li,怎么知道自己点击的是第几个?(我说的超麻烦,用parent获取children的数组,然后来进行遍历判断是否相等,面试官说其实用dataset来做更方便)
- CSS的display有哪些值?inline和block的区别?inline的元素能设置宽高、margin属性吗?(inline元素不能设置宽高,外边距只能设置左右,不能设置上下)
- 垂直居中布局有几种办法?
- 怎么用CSS画一个三角形?
- (代码)有序数组合并,如:
let a = [1,3,5]
let b = [2,4,6]
merge(a,b) // [1,2,3,4,5,6]
- (代码)写了简单的实现思路,然后面试官问我哪些地方可以优化
一面就这么结束了,面试官问我还有啥问题,我问通过面试感觉我的哪些环节比较薄弱?为什么没有问框架?面试官跟我讲解了下,说是“重基础,框架只是工具,学起来快,而且二面就会问到”。是的,突如其来的二面就在十分钟后进行!
二面:
- 实现两栏布局,左边div固定宽度,右边占满屏幕。当我用
display:flex;
解决后,问了我其他方案,及双飞翼模型。 - 鼠标悬浮做一个div动画,如悬浮时上移10px;(我用translateY写了以后,问我是否会用transition写,我说不会)
- border-box和content-box的区别;
<div style="width: 200px;padding: 10px;margin: 20px"><div>
在两种盒模型下获取div的宽度分别是多少? - CSS选择器的优先级,以下选择器优先级顺序:
(1)#foo div;(2).foo .bar div;(3).foo~.bar div
追问:
(2)换成.foo .bar .foo-1 .foo-2 div
优先级有没有可能比(1)高 - 线程和进程的区别,JS是单线程的吗?
- 写一个函数返回当前节点是其父元素的第几个节点。
function getNodeIndex(node){
let index = 0;
return index;
}
- 实现一个JS的sleep:
async function sleep(time){
}
await sleep(3000);
console.log(hello);
- 写一个正则匹配出图片的后缀:(要求写明字符串匹配的API)
var str = "https://sf3-ttcdn-tos.patatp.com/img/edux-data/xxxxxxxxxxxxxxxxxxx~0x0.jpg"
- 手写拖拽效果(这题我要好好说说,大概四个月前,我写过,但我全忘了,我就说“我能说说实现思路吗?我现在写不出来”,面试官答应了,等我说完,面试官说你试着再写写,我试了一分钟,选择放弃,面试官说,不然你去网上查查API啥的,别直接搜答案就行,我搜了,我依旧说,我写不出来,面试官开始引导我修改刚刚写错的代码,我的天啦!这也太好了吧(´▽`ʃ♡ƪ)手动比心)
v-show
和v-if
的区别及使用场景- 在Vue中怎么声明数据才能防止被Vue监听 (我说写在data外面,追问:怎么写?我说在export default上面写,追问:这样还是能被访问到,我不想被访问到,我说不知道,现在来想,难道是想问我闭包?)
- 发送请求用什么?(我说:AJAX)
- get和post的区别?
- 计算机分为哪几层?
- 应用层有哪些协议?PING属于哪一层?
ping 127.0.0.1
有什么作用? - git里面怎么查看前几次commit的信息?只上传某一个文件怎么操作?
- 平时用哪些封装的包来发送网络请求?(axios)
总结
一面,题目答的都不算太好,但也还顺利,两道代码题比较简单,做得也快,遇到的问题面试官也都在我答错后进行指出并耐心讲解了,面试体验非常好;
二面,CSS和DOM也差点把我问死了,好在每题我也说上了一点,面试官人也很好,不断给我机会😂,好多API也记得不清楚,面试官也没挑我的理,重在看解决思路;后面有几题可以看出有点偏计算机系统了,奈何我没学这门专业课,就挺尴尬,hhhh~
两场面试下来就是,体验非常好,耐心引导、讲解,之前面其他大厂基本没这待遇;第二感觉就是快,当天晚上,接到了hr的电话,约三面,有点惊讶,这是不是太快了点?不知道该快乐或是慌张😂
不说了,准备明天的面试去了~