记今日的面试
今天的上午下午各一场面试,虽然自己有精心准备,但是面试的效果还是不是很好,网上搜罗的面试题,算法题等等,都有消化吸收,也不能说完全没有用吧,至少在笔试题还是用上了的,功夫也算是没有白费,废话不多说了,总结下今日面试不好的地方,砥砺前行!
上午面试:
1.promise的处理分为then,与catch,then的返回值被下一个promise对象所接收,这个then return的值是否有限制:
刚听到这个题目的时候我是懵逼的,promise的then一般接收resolve函数,promise的catch一般接收错误的函数,then的返回值会被下一个promise接收,但是对于返回值的约定,这点不是很清楚,面试结束过后就去百度了一下,也没找到结果,暂时作为一个疑点
2.vue-router的配置
vue-router有base与mode配置项,vue-router有使用过,但是没有配置过,再次去翻看vue文档,找到了结果
1 mode: 2 3 类型: string 4 5 默认值: "hash" (浏览器环境) | "abstract" (Node.js 环境) 6 7 可选值: "hash" | "history" | "abstract" 8 9 配置路由模式: 10 11 hash: 使用 URL hash 值来作路由。支持所有浏览器,包括不支持 HTML5 History Api 的浏览器。 12 13 history: 依赖 HTML5 History API 和服务器配置。查看 HTML5 History 模式。 14 15 abstract: 支持所有 JavaScript 运行环境,如 Node.js 服务器端。如果发现没有浏览器的 API,路由会自动强制进入这个模式。 16 17 #
1 base: 2 3 类型: string 4 5 默认值: "/" 6 7 应用的基路径。例如,如果整个单页应用服务在 /app/ 下,然后 base 就应该设为 "/app/"。
3.vue的生命周期
vue生命周期的介绍网上有很多,今天面试的时候,我回答了8个周期的钩子,回答的不是很全面,所以查阅了资料进行了补充
(1)beforecreate created
beforecreate:组件实例刚刚被创建, 组件属性计算之前,如data属性
created: 组件实例创建完成,属性绑定,但是dom未生成
(2)beforemount beforemounted
beforemount:模版编译挂载之前
mounted:模版编译挂载之后
(3)beforeupdate updated
beforeupdate:更新之前
updated:更新之后
(4) beforedestory destoryed
beforedestory:组件销毁之前调用
在下午的面试中,面试官问我,什么时候调用这个钩子,我没有用过,没有回答,百度==》beforeDestroy
: 你确认删除XX吗? destroyed :当前组件已被删除,清空相关内容
destoryed:销毁之后
下午:
1.原生js实现一个居中弹窗:
关于弹窗实现我回答出来了,就是点击弹窗按钮生成一个div,append到body里面去,在回答居中的问题上,有点问题,除了display:flex,面试官问我是否有别的办法,我说了给定位,然后left:50%,再margin-left:自身宽度的一半,他继续问,如果未知宽度呢,当时除了display没想到别的办法,有点紧张,后来面完了在路上想到了,还是定位,视口宽度的一半减去元素自身宽度的一半,未知宽度可以用clientwidth来获取,视口宽度:document.documentelement.clientwidth来获取,即使是没定定宽的元素,这样也是可以获取的。
2.原生轮播图:
之前写过很多次的原生轮播图,但是面试的时候竟然没回答出来,回来赶紧看了一遍,父容器相对定位,超出隐藏,里面放一个ul,绝对定位,ul的宽度为所有图片的宽度,比如图片为7张,ul的宽度为700%,然后里面的li全部浮动到左边,通过改变ul的left值,来实现图片的左右轮播。回答的时候脑抽来竟然说父容器也是绝对定位…
以上是今天面试的总结,结果应该不是很好,总结总结经验,下次继续,多储备一些vue相关的知识,继续加油!