水滴-前端一面-3.22下午
面试官人很nice,非常喜欢一些能适当对问题做出解释的面试官,蛮耐心的,也确实深入了解每个知识点,知识点都问的很细致,受益颇多!今天也是被八股拷打的一天呢 乐(^∀^●)ノシ
开场
自我介绍
项目的用户权限管理?
数据类型判断的方法
typeof instanceof Object.prototype.toString.call()
(记不太清instanceof的优缺点了)
Promise
多个Promise执行结束后再返回执行结果应该怎么实现
Promise内部外部的异常捕获?
(大概是想问链式调用里的Promise.then() Promise.catch()参数问题,我没get到)
防抖和节流(哈哈,没认真背过 寄( ̄_, ̄ )
盒模型
要能说出盒模型构成,标准盒模型 怪异盒模型的区别和具体如何设置
潜意识知道是box-sizing 但更具体属性值是content-boxing和border-boxing我就没想起来了
三栏布局
(在这里三栏布局和圣杯布局是分开记忆的,所以只答了基本的三栏实现方法)
(什么flex float 绝对定位都答了一遍)
(面试官:下去看看最经典的圣杯布局吧! 我不服,遂斗胆口述圣杯布局实现)
圣杯布局(那些年画过图,又亲手敲过,但还是不理解的圣杯布局)
margin为负的具体含义
(给了具体场景,两个盒子一上一下,上面的盒子margin设置为负值,那会产生什么影响呢?)
(我不懂,小哥遂解释到:会让下方的盒子上移呀)
flex: 1的具体含义
(只记得第一个放大 第二个缩小 第三个是个百分比了,遂寄 X﹏X)
flex运用
(同样给了具体场景,文字单行时居中,多行时居右怎么实现?)
(好像就是用flex设置水平垂直居中就好( ̄▽ ̄)" 不太理解)
最后用强缓存和协商缓存收尾
首先进行强制缓存的过程,当查询到本地有缓存的时候,优先用Cache-Control计算相对时间(还有Expires里有绝对时间),如果没有过期就直接使用,过期了的话就进行协商缓存。
协商缓存有Etag方法和时间计算Last-Modified方法,一般优先对比两端的Etag是否一致,一致则直接 304 从本地取,否则返回所需要的资源 然后200。还有时间计算Last-Modified,如果时间在最近,说明资源近期修改过,返回资源;如果时间比较旧,说明资源近期没有修改,返回304取本地资源。
我自认为答得蛮细了,小哥反问:为什么Etag优先级比Last-Modified高?补充答:
(摘自小林coding)
反问
业务?保险一侧的项目组,三到四人一个业务线
技术栈?用Vue2
新人缓冲期?入职就要接需求了,会有人带一下 而且公司有自己的培训计划
#前端##面经#