请先做一个自我介绍
您好,我叫顾博毅,之前在无锡的一家金融公司做前端开发,主要是用的技术栈是Vue3+ts和uniapp做web端和微信小程序的开发工作。因为我对象是南京本地的,以后打算定居南京,所以来南京这块找工作,并且提升自己的技术能力。
说一说你的这个xxx项目主要是做什么的,你在里面负责哪一块,有没有碰到什么有挑战性的任务,你是怎么解决的?
这个公司是做不良资产处置的,且在市面上没有适用的业务系统,所以是根据公司自己的业务需求来做的开发,主要包含CRM客户管理、债权、物权、房抵贷相关的业务、OKR绩效考核、档案管理等模块的开发。我在里面负责整个web前端开发工作,其中大多数都是增删改查相关的业务,比较有挑战性的是档案管理上传后在线查看功能,当时是通过csdn、chatGPT来查看如何实现的。
说一说开发流程
由产品经理汇总每一条业务线,拆分各个模块进行精简和融合,画出原型图,交给前后端进行开发和后期的测试
H5C3新特性,什么场景会用到
H5的新特性:
1.语义化的标签
2.新增音频视频
3.画布canvas
4.数据存储localstorage sessionstorage
5.增加了表单控件 email url search...
6.拖拽释放API
CSS3的新特性:
1.新增选择器:属性选择器、伪类选择器、伪元素选择器
2.增加了媒体查询 (媒体查询功能可以根据设备的特性和屏幕尺寸来应用不同的样式,实现响应式设计,使网页在不同设备上有更好的显示效果。)
3.文字阴影
4.边框
5.盒子模型box-sizing
6.渐变
7.过度
8.自定义动画
9.背景的属性
10.2D和3D
某些功能的使用场景 比如:
响应式网页设计:使用CSS3的媒体查询和Flex弹性布局来创建适应不同屏幕尺寸和设备的响应式网页。
本地存储和离线应用:利用HTML5的本地存储机制(localStorage和sessionStorage)将数据保存在客户端,实现离线应用、断网恢复等功能
new操作符具体做了什么?
1.先创建一个空对象
2.把空对象和构造函数通过原型链进行链接
3.把构造函数的this绑定到新的空对象身上
4.根据构建函数返回的类型判断,如果是值类型,则返回对象,如果是引用类型,就要返回这个引用类型
说一下什么是闭包
当一个函数内部定义了另一个函数,并且内部函数引用了外部函数的变量,那么就形成了一个闭包。内部函数可以访问外部函数的变量,即使外部函数已经执行完毕,这种访问仍然有效。
特点:可以重复利用变量,并且这个变量不会污染全局的一种机制;这个变量是一直保存再内存中,不会被垃圾回收机制回收
缺点:闭包较多的时候,会消耗内存,导致页面的性能下降,在IE浏览器中才会导致内存泄漏 使用场景:防抖,节流,函数嵌套函数避免全局污染的时候
说一下原型链 什么情况下会用到
原型就是一个普通对象,它是为构造函数的实例共享属性和方法;所有实例中引用的原型都是同一个对象 使用prototype可以把方法挂在原型上,内存值保存一份
proto可以理解为指针,实例对象中的属性,指向了构造函数的原型(prototype)
改变this指向方法
call,aply,bind
响应式页面如何实现
flex弹性布局、媒体查询、rem、百分比
rem是如何做适配的?原理是什么
rem(root em)是一种相对单位,它相对于根元素(通常是<html>标签)的字体大小进行计算。适配使用rem单位的页面,通常是通过设置根元素的字体大小来实现的。
适配的基本原理是,根据不同的屏幕尺寸和设备像素密度(DPR),动态调整根元素的字体大小,从而使页面元素的大小和布局相对于根元素的字体大小进行缩放。
你们公司前端有几个人,如何组成
公司里面有2个前端2个后端,一个产品经理总共5个人。我负责web端的开发。
vue中v-if和v-for优先级在vue2和vue3中的区别
当在同一个元素上同时使用 v-if 和 v-for 指令时,在Vue 2和Vue 3中的优先级规则有所不同:
- 在Vue 2中,
v-for的优先级高于v-if,即先解析和渲染循环,然后应用条件判断到每个循环项。 - 在Vue 3中,
v-if的优先级高于v-for,即先解析条件判断,然后确定是否进行循环渲染。
因此,如果你想在特定条件下控制整个循环是否渲染,Vue 3的行为更符合预期。然而,为了避免混淆和提高可读性,官方文档建议尽量避免在同一个元素上同时使用 v-if 和 v-for,并考虑使用其他方法来实现需要的条件渲染和循环逻辑。
v-if和v-show的区别
v-if是在编译阶段根据条件表达式来决定是否渲染元素,而v-show始终渲染元素但使用 CSS 控制其可见性。v-if切换条件时会销毁和重建元素,开销较高,而v-show只是切换元素的可见性,开销较小。v-if在初始渲染时根据条件决定是否渲染元素,而v-show初始渲染时始终渲染元素但使用 CSS 控制其可见性。- 如果条件频繁切换或元素内部包含复杂组件和计算逻辑,推荐使用
v-show。 - 如果条件变化较少、切换频率低或需要在条件变化时执行较大计算开销的操作,推荐使用
v-if。
vue3中 组件传值方案 (常用)
-
props 主要用于父组件向子组件通信。在父组件中通过用 :msg="msg" 绑定需要传给子组件的属性值,然后再在子组件中用 props 接收该属性值。
-
$emit 也就是通过自定义事件传值,主要用于子组件向父组件通信。
-
ref
-
provide与inject 主要为父组件向子组件或多级嵌套的子组件通信。
-
pinia
-
v-model
-
插槽
在VUE中遇到跨域如何解决
- CORS(跨域资源共享):如果你控制了目标服务器,可以在服务器端设置CORS响应头来允许跨域请求。在响应中添加
Access-Control-Allow-Origin头部,并设置允许的源(例如Access-Control-Allow-Origin: *表示允许所有源)。服务器还可以设置其他CORS头部来控制请求的方法、标头等。 - JSONP(JSON with Padding):JSONP是一种通过动态创建
<script>标签来实现跨域请求的方法。服务器返回的数据会包装在一个函数调用中,前端通过定义一个回调函数来接收数据。这种方法只适用于支持JSONP的接口。 - 代理服务器:在部署项目时,可以在后端服务器上设置一个代理服务器,将前端请求转发到目标服务器,从而绕过跨域限制。前端请求实际发送到同源的后端服务器,然后由后端服务器代理发送请求到目标服务器,并将响应返回给前端。
- WebSocket:如果需要进行实时通信,可以使用WebSocket协议。WebSocket不受同源策略限制,因此可以在不同源之间建立双向通信。可以通过WebSocket与目标服务器进行通信,实现跨域通信。
- 代理服务器插件/工具:在开发环境中,可以使用一些代理服务器插件或工具来解决跨域问题。例如,webpack-dev-server和http-proxy-middleware可以配置代理服务器来代理请求,以解决跨域问题。
这些方法中,CORS是处理大多数跨域问题的首选方法,因为它是一种标准的解决方案,不需要特殊的处理。其他方法可以在特定场景下使用,根据具体需求选择适合的方法来处理跨域问题。
说一说 nextTick
在下次 dom 更新循环结束之后执行延迟回调, 可用于获取更新后的 dom 状态
GIT如果遇到冲突怎么办
代码拉下来 看一下 协商解决