hello,我是阿达西,之前一直在模拟面试题,今天终于开始了一次真正的面试了,但是这次面试貌似有点不凑巧啊,面到一半,面试官就被别人催着干啥去了,导致原本设置的一个小时的面试时间只用了20几分钟。这是一家教育公司,问的很基础,问了几下就结束了。
首先上来的肯定是自我介绍
这方面我就不细说了,不然老底全都给曝光了。我就说了我是谁谁谁,然后想干啥,为什么选择前端,怎么学习前端的,以及的学了什么。然后结合ai讲了一下我认为ai对前端的冲击,我们要成为ai的主人,ai了解了什么东西,最后展望了一下未来,希望怎么发展。
vue方面的问题
1、你有一个全局的数据需要在各组件中展示,你怎么做?
我的回答是:我可以将其放在app.vue中,然后通过provide和inject进行传递数据。我问他对吗,他说嗯。有点高冷啊。然后我又说还可以使用状态管理工具,如pinia和vuex还存储这些数据,然后再组件中去使用它。然后我就说我就只了解这些。
2、 vue的生命周期,你的请求是在哪个生命周期中,为什么选择在那。
vue的生命周期我常用的主要是挂载前后,更新前后,卸载前后,(我忘记说创建了,在vue3中用的是setup)我说的请求是在挂载前(onBeforeMonted),但是实际上一般是在onMounted那里。(怪不得问我为什么不在onMounted里面)我记混了,亏我当时还一本正经的说呢,说怕拿不到数据。嘶~我还自我感觉良好,害,也不纠正我的问题打击一下我。
3、双向绑定的原理
我说vue中双向绑定是基于响应式原理,在vue3中通过proxy对象,对对象进行代理。,在vue2中通过object.defineProperty进行数据劫持。然后在其中进行拦截,如果发现数据改变得话,就会收集相应的依赖,最后通知视图更新。(我本来想引诱面试官问出这两种方式的区别的,奈何面试官不上套,嘶~)
4、你是怎么封装axios的(请求)
昨天还特地看了一下这个,我就说我一般先导入axios,然后对其进行一些基本的配置,如一些请求的url,还有一些的默认的请求内容。然后再添加一些拦截器,例如请求拦截和响应拦截,在请求拦截中主要是给其添加一些请求头,例如token什么的。然后在响应拦截中处理一些返回后的情况,例如对返回的状态进行判断,处理一些处理和失败的逻辑。我说我们前后端数据都要进行二次校验,这样才能保证拿到的数据的正确性。
5、你怎么判断你是否登录了呢?
我就说我们登录的话会生成一个token,然后将其存入localStorage或者是cookie中(我不记得当时有没有说cookie,因为我怕他问,对这方面还没太了解)然后再请求拦截中将这个token带到后端,由后端进行校验。我说后端的话是拿到token之后进行解密验证,然后再返回给前端信息。(这里答得貌似也不是很好)
React方面的问题
React中组件是怎么传参的?
我当时也没准备react的方面的内容,React还是我前几个月学的,还是跟着哔站上的视频边敲边那个的,有点忘记了。直接回避了这个问题。然后我就讲了一下为什么没有准备React,因为我当时学React的时候跟着视频上敲,然后自己也就一下过去了,后来因为开学事情很多,我就没来的及学React。(不知道这样解释有咩有点画蛇添足的意思。)
面试官也是很识趣的没有再继续问相关于React的问题了。
js方面的问题
1、 this的指向问题
我回答了this的指向有四种规则:
- 第一种就是默认指向,当函数独立调用的时候,它的指向就是指向全局的
- 第二种就是隐式绑定,当一个函数被某个对象所拥有,或者函数被某个上下文对象调用时,该函数中的this指向该上下文对象
- 第三种就是隐式丢失,当一个函数被多个对象链调用时,this指向最近的那个对象
- 第四章就是显示绑定,通过call、apply、bind方法来改变this的指向。(本来也想通过这个来引诱面试官来问这三者的区别的,害,也没问)
2、ts,java,js三者的区别
因为他看我在简历上的基本专业课程有java,就问我三者的区别,我说ts是js的超集,他可以帮我们实现js不能实现的类型约束,js他是一门弱类型语言,另外ts还有编译阶段检查的特点,就不会像js一样执行了才知道有问题,对开发者来说比较友好。另外java和ts的区别我没有进行比较,但是我感觉ts与java很相似。
3、你讲一下闭包
我说js作用域有两个规则,一是内部函数总是可以访问到外部函数的变量,二是外部函数执行完毕后会被立即销毁。这两个规则其实是有冲突的,为了让这两个规则不相冲突,闭包的概念就孕育而生了。就是,内部函数在外部函数外被调用,外部函数即使被销毁也不会完全被销毁,会单独将用到的变量存储起来。 后面他又问,使用闭包会有什么后果?我说过度使用的话或造成内存泄露,适当使用的话可以创建私有变量,防止全局变量的污染。
你有什么想问的?
到这就结束了,我就问了几个关于公司相关的问题,一个技术栈,还有一个关于我的评价。这两个,他说如果他们正在向React转型,看我有React的项目,所以我了一下,说如果我会React是个加分项。他说你这基础还可以,上手起来的话也不难。然后就结束了
个人总结
说实话,在这问的一些内容有一些答得还不是很好,上面写的也有一些标注,这方面还是需要再细化一下。另外问的都是一些很基础的问题,深度的还是要去学习一下。我之前看岗位要求的简介,还准备了一些css方面的问题,结果一个也没问,所以我觉得还没有答痛快,都没有让我酣畅淋漓啊。另外面试的问的内容还是有点少,貌似纯八股······
最后
上述的所有回答都是我个人的理解,肯定还有不到位的地方,希望各位大佬指出,但是不要喷我,我玻璃心,嘶~ 咱别攻击哈,心平气和的指出来,我都会虚心接受请教的。感谢大佬们的阅读。如果觉得还可以的话,可以点个小赞
哦。爱你们