科大讯飞前端秋招面经
⭐一面
- 问了问城市选择,家在哪,做了自我介绍
- 技术栈(vue2多 vue3相对少)
- H5新特性(语义化标签、新选择器、拖拽元素、跨标签页通信、PWA(后来查到不算是、真正的离线缓存是通过manifest做的,PWA的本质是这样),后面突然想不起来了,面试官又引导着说了增强表单控件、媒体播放、canvas,说到canvas时候顺带提了一下做过的图片压缩案例)
- 标准盒模型和怪异盒模型(标准中width只带content部分,而怪异盒模型中的width包括了content padding border三部分,这里刚开始突然懵了一下,过了一会儿想起来了)
- 怎么设置标准盒模型和怪异盒模型(box-sizing: content-box/borderbox)
- 样式权重优先级(!important>内联>id>class/伪类>元素/伪元素)
- CSS如何画一个扇形(没做过,不会)
- CSS画一个三角形(我只做过设置两边的边框,然后旋转成三角角标,面试官说不是这个)
- 垂直水平居中(flex + justify-content + align-items / grid + place-items / 绝对定位+transform)
- 如何实现一个竖直的三栏布局(我答flex布局,上下高度通过height设置,中间content部分通过flex设置以填满,面试官问我怎么实现content的响应,不太懂了。后面又补充了我的电商项目是三个盒子堆下来的,通过给中间盒子设置padding或margin将内容挤到中间部分)
- 说说JS数据类型(基本数据类型:number string boolean null undefined symbol bigint + 复杂数据类型:基类是Object,其他都是通过原型链派生出来的)
- 既然提到了原型链,那就说说原型链(常规八股)
- 原型链的顶层是哪里?(Object.prototype.__proto__ = null表示顶层)
- 箭头函数和普通函数的区别(答了箭头函数的this是词法绑定的,面试官说不够,我又说箭头函数定义的是函数表达式,没有声明提升,而function声明是有提升的,面试官还说不够,想不出来了)
- 如何改变this指向(apply call bind)
- apply call bind的区别(基础知识)
- 箭头函数可以作为构造函数吗,为什么(不能,this是词法绑定的,但new操作的时候要改变构造函数中的this指向,后来才知道还和箭头函数没有prototype有关)
- 箭头函数中有arguments吗(我猜了有,猜错了)
- 常用数组方法(常规八股)
- forEach和map的区别(forEach只是遍历,map可以将return返回的元素构成新数组)
- 平时是怎么处理异步的?(promise async await)
- 还有其他方式吗(没想出来,提示了生成器,确实没用这个处理过异步)
- 回调函数有了解吗(有用过,这问题有点怪)
- vue3有深入了解吗(只是简单用过,项目刚搭了个架子,不是很熟练)
- vue2 vue3在使用上感觉有什么不同(composition API、通过fragments支持多个根标签、treeShaking打包后体积小、通过ref reactive定义响应式、proxy实现响应式、卡顿了一下正准备继续说diff区别,面试官以为我结束了,提新问题了)
- ref reactive的区别(经典八股)
- 有遇到过数据更新dom不更新的情况吗(想复杂了,其实是想考察
forceupdate)
- 父子组件生命周期过程(父挂载前子再初始化,子挂载后父再挂载)
- 组件通信方式(经典八股)
- ref有用过吗(拿组件实例,一开始说成拿dom实例了,面试官纠正了一下)
- 学的什么专业?软件工程
- 那就说说网络模型吧(还好之前看了一下,一个四层一个七层,面试官说七层,我大致的说了 物理层 数据链路层 传输层 网络层 应用层 会话层 表示层 顺序不太对,面试官点了点头)
- 说说状态码(从1到5说了一遍,补充了之前遇到的一个415错误,面试官还细问了一下)
- 说说浏览器缓存(经典八股,顺带提到了我的项目中使用协商缓存做的优化)
- 说说同源策略(经典八股,顺带提了怎么解决跨域 jsonp cors 代理转发 BFF层)
- 还记得cors怎么配的吗(access-control-allow-origin)
- 还有其他方式吗(其他真不知道了,面试官说还有好多方法,可能你没用到过)
- webpack有了解吗(配过,提了一下我在项目里做的代码分割优化)
- 首屏还做了其他优化吗(开gzip 图片CDN)
- gzip是在nginx上配置的吗(对,nginx上和webpack中都要配置)
- 第三方的js文件没有用CDN托管吗(没有)
- loader和plugin的区别(经典)
- vite了解过吗(只用过配好的,没有自己配过)
- 用什么方式学习,有遇到过什么困难
- 反问(面试流程:面试官也不知道,公司技术栈:老项目vue2 新项目vue3,前端做什么类型的项目:tob)
面试时间总计四十七分钟,时间不是最长的,但问题确实是最多的,加上对面有点嘈杂,面完感觉怪累的
⭐二面
- 自我介绍
- 哪个项目投入比较多
- 介绍一下(简单介绍了一下,说了其中两个优化点)
- 看你有其他实习经历,但没有写项目(说了是夏令营形式和学校安排实训性质的,都是简单项目,没有什么好写的)
- 为什么选择前端(兴趣)
- 职业规划(深入前端,并了解一部分后端业务)
- 在院里成绩怎么样(中等)
- TCP和UDP的区别(可靠不可靠,可靠传输的机制,以及应用场景都说了一下)
- HTTPS的流程(配置证书,非对称加密交换密钥,对称加密进行通信)
- 说说DNS解析流程(从缓存开始查起,再向上询问,最后层层返回,每一层留下对应的缓存)
- 能接收合肥这边的offer吗(地方不是问题)
- 能接收加班吗,每周可能会加班两三天,不过会有双休(可以,不过不太想接受无意义的加班,说完这个面试官感觉有点不太开心了)
- 反问,想要个评价,面试官说hr会说的,不太懂
又过了半个月hr才联系我说走后续流程,目前还没约时间
#面经##科大讯飞#