2019.10.22红星美凯龙面试前端
10.16号电话接到面试通知,我给面试排到了10.22号十点钟。而后那边可能时间冲突,次日特意短信通知,给我安排到了10.22的10:30。vue
面试那天十点十分到达。等待期间和另外一位面试产品的小姐姐聊了回天,聊了很开心,她说她填完表格以后,已经等了半小时,她很着急,由于下午她还要回公司处理事情。而后小姐姐被叫走了,个人面试官恰好来,给我几张表和一套面试题,大概到了十一点钟,个人面试官把我叫走,开始了正式的面试。ios
首先就是自我介绍,自我介绍的内容面试以前准备了一下,因此自我介绍的时候很轻松,也没有紧张,很天然的聊天。es6
个人自我介绍内容大体就是基本信息的介绍(姓名,学校,专业,家乡)、前公司的主要负责内容、业余时间的安排、近期职业规划,以及性格爱好,差很少这么多。面试
前面巴拉巴拉不少,只是想让你们熟悉一下流程,下面重点来了,拿好小本本记录下吧。axios
1.你来讲下前端路由的原理吧,不使用别人框架提供的路由数组
我:”两个模式 hash 和 history,hash就是url里面显示的#号promise
history是用pushState和replaceState来操做。“框架
面试官:“嗯,还有吗?”dom
我:“差很少这些吧,具体我忘记了,我回去再了解了解”
面试官:“嗯,那你用原生实现一下吧,不用框架提供的方法”
我:(心里:我刚刚不都说了吗,那两个方法,都是具体不知道了,还问啊啊)“嗯,hash的话是当hash改变的话就会触发一个回调吧,来实现跳转,history的话就是刚刚提到的pushState和replaceState”
面试官:“你能写出来吗”
我:“我不太会,哈哈哈”
面试官:“哈哈哈”
...
so 这道题算我没打出来,第一道题就不顺利。
这篇文章写的不错你们能够看下 https://www.jb51.net/article/143009.htm
2.如何保持浮层水平垂直居中
这道题我是用flex布局写的
我:“display:flex;just-content:center;align-items:center;just-content水平对齐方式,aligin-items垂直对齐方式。”
我想着这道题应该没什么问题了吧,通常我都是用flex布局,我很熟悉的!
觉得这样就结束了,想得美 emmm 我真的太年轻了
面试官:“通常均分,三块的话怎么作”
我:''都给个flex:1;“
面试官:“我想给个固定的值200px呢”
我:"??? 那直接width:200px 不就行了吗" 多是咱们get到面试官的问题
面试官:“flex有几个参数你知道吗”
我:“我有点记不清了,没这样写过”
面试官准备过了这一道题,而后我直接反问的说,你帮我解释解释那个呗,
面试官:”嗯好的,flex的默认值是三个,(他在纸上写了flex:1 1 200px;)"
其实我仍是没太懂,由于我也没这样用过,描述不清楚也请你们见谅。
so 这道题我也算凉了!!!
3.请说出函数节流和函数防抖的区别,并写方法实现它
这道题我以前看过,口述了一下方法,差很少过了,面试官这道题没有深问。
4.box-sizing的做用
这道题也没什么,很常见
5.
const OBJ = {"a":1,"b":2}; OBJ.a =3; consloe.log(obj.a);
这道题我写的3
面试官:“你解释一下你的答案”
我:“这个不是直接给实例属性a直接赋值了吗,直接修改了属性值”
面试官:“这道题你懵的吧”
我:“没有啊”
面试官:”那你解释一下 var let const的区别“
我:“哦哦 const,哇这个常理不能修改,我居然没有注意到,可是呢对象是引用类型,指针不发生改变就ok了”
官方一点咱们能够这么讲:由于对象是引用类型的,OBJ 中保存的仅是对象的指针,这就意味着,const仅保证指针不发生改变,修改对象的属性不会改变对象的指针,因此是被容许的。
因此这道题我也没过,是面试官提醒的
6.script标签的defer、async的区别
有 async,加载和渲染后续文档元素的过程将和 script.js 的加载与执行并行进行(异步)。
有 defer,加载后续文档元素的过程将和 script.js 的加载并行进行(异步),可是 script.js 的执行要在全部元素解析完成以后,DOMContentLoaded 事件触发以前完成。
7.写出两个数组去重的方法
我用的es6 [...new Set(arr)] 和 直接遍历对比配合splice
8.判断两个对象是否相等
这道题我直接写了getOwnPropertyNames()方法,面试官没有继续问,后来查下资料涉及深拷贝什么的,小伙伴们本身总结一下。
9.用vue写项目的时候遇到什么问题
我:“dom不渲染的时候用到next tick解决过”
面试官:“你说一下next TIck”
我:“在下次dom更新循环结束以后执行延迟回调,在修改数据以后当即调用这个方法,获取更新后的dom“
面试官:“你说下这个实现原理”
我:“我没去看,只知道能够这样用”
面试官:“嗯”
因此这道题我也没有说好
10.你知道$set吗
我:”添加的新属性不能触发,能够加上$set就能够了“
面试官:“实现原理是什么”
我:“emmm,我如今只知道怎么用”
因此这道题我仍是没回答出来,我真的没有去看vue源码,本身真的差太远了,什么也不会!!!
11.你用promise封装过axios吗
我:“封装过”
面试官:“为何要用promise封装axios”
我:“处理异步呢”
面试官:“axios自己就返回一个promise 你为何还要封装呢”
我:...
12.说一下promise
说一下promise实现原理
promise说了一下,让我实现一个promise 我不会。
13.说一下event Loop
这个以前了解过,算说出来吧
14.说一下你的优势吧
说到这的时候我已经我感受我凉了,面试官还在旁边笑,以致于我说优势的时候开始笑了,,面试官说你看你说本身都笑了...
总结:整个氛围很nice,面试官也很nice,我不会的反问他时,他还会给我讲,一直嘻嘻哈哈的聊完,可是人家终究要找技术人员,并且刚刚我表现并不怎么好,因此接下来也没有收到通知。
虽然每道题大体说出了一二,但实则差很远,大厂不缺干活的人,缺的是有想法有能力又能解决问题的人。若是一个211 和 我一个普通本科都面试不不怎么样,非要在其中选一个的话那确定是2十一、985 。因此咱们只能提到本身的能力,要否则有什么优点来让别人选择咱们呢!!!
ps:必定要理解原生js,多看一下源码,让本身变得有思路,而不是机器。
、