需要参与部门的前端面试,故根据简历列出面试题,便于面试。
王冰轮
第一个项目中前端页面主要有哪些功能?
1. 参与的项目中使用的前端技术栈有哪些?
5. js数据类型
css中伪类与伪元素的区别
2. Vue基础知识点(nextTick的作用是什么)
3. Options Api与Composition Api的区别
4. Vue3 新特性
6. 项目开发过程中遇到什么比较棘手的问题 怎么解决的?
平常通过什么途径拓展前端技术?
吴晨扬
1. 使用WebScoket实现了一个聊天框功能的流程
WebSocket最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,而不需要频繁地建立和断开连接。
//首先创建WebSocket实例(执行下面语句之后客户端就会和服务器进行连接)
var ws = new WebSocket(URL)
//连接状态
ws.addEventListener('open', function (event) { console.log("连接成功后的回调函数") });
ws.addEventListener('close', function (event) { console.log("连接关闭后的回调函数") });
ws.addEventListener('error', function (event) { console.log("连接报错时的回调函数") });
// 服务器向客户端推送信息
ws.addEventListener('message', function (event) { console.log("收到服务器数据后的回调函数") });
// 客户端向服务端发送消息
ws.send('XXX')
2. 深拷贝,防抖在项目中的使用场景,是否是自己手写出来的?
第一种方法的弊端:这种方法虽然可以实现数组或对象深拷贝,但不能处理函数和正则,因为这两者基于JSON.stringify和JSON.parse处理后,得到的正则就不再是正则(变为空对象),得到的函数就不再是函数(变为null)了。
// 检测数据类型的功能函数
const checkedType = (target) => Object.prototype.toString.call(target).replace(/\[object (\w+)\]/, "$1").toLowerCase();
3. 从零开始搭建Vue框架的流程(为啥不用Vue3)
4. 二次封装了Axios以优化网络请求 怎样封装以及优化请求
5. 移动端适配
6. 对哪些组件进行封装 拿其中一个组件讲讲封装流程
7. Uniapp与一般Vue项目的差异
接口请求为什么不用uni.request?
uni.request封装
Uniapp与一般Vue项目的区别
1、组件/标签的变化
以前是html标签,现在是小程序标签。
2、js的变化
浏览器专用的window、document、navigator、location对象,包括cookie等存储,只有在浏览器中才有,app和小程序都不支持。
在uni-app的各个端中,除了h5端,其他端的js都运行在一个独立的v8引擎下,不是在浏览器中,所以浏览器的对象无法使用。
3、页面管理挪入了uni-app的pages.json, 使用uni.navigateTo等api实现页面跳转