恒生一面
1.自我介绍
2.项目
3.css中的各种单位(px,em,rem,vw,vh)
答案:
- px是像素(pixel)的缩写,相对长度单位,网页中常用的基本单位,相对于显示器的分辨率而言的;
- em也是相对长度单位,相对于当前文本对象内的字体尺寸(font-size),如果是作用于字体的话,em是相对于父元素字体大小,如果是作用于width/height...,em是相对于该元素的font-size
- rem相对于html根元素的字体大小来计算的,一般来说1rem=16px
- vw、vh为视口单位,相对于视口而定的,例如1vw等于视口宽度的1/100
- vmax、vmin不咋常见
5.什么是深拷贝,深拷贝怎么实现
答案:深拷贝是指复制对象时,不仅复制了对象的引用,还复制了对象的本身,例如一个对象A={a:1},现在深拷贝A,得到A_copy,如果修改A.a = 3,此时对A_copy没有影响,即A_copy.a 任然为1。
实现:递归实现,考虑到循环引用的问题,需要在递归过程中添加一个weakMap
代码:
function cloneDeep(obj, hash = new WeakMap()) { if (obj === null) return obj if (obj instanceof Date) return new Date(obj) if (obj instanceof RegExp) return new RegExp(obj) if (typeof obj !== 'object') return obj if (hash.get(obj)) { return hash.get(obj) } const newObj = new obj.constructor hash.set(obj, newObj) for (let k in obj) { if (obj.hasOwnProperty(k)) { newObj[k] = cloneDeep(obj[k], hash) } } return newObj }
5.什么是跨域,跨域如何解决
答案:跨域是浏览器基于同源策略的一种安全手段,若协议、主机号、端口任何一个不同,就会受到同源策略阻止
解决方案包括JSONP、CORS、Proxy
6.css中flex有哪些属性
答案:flex-direction(项目排列方向)、flex-wrap(换行)、flex-row、justify-content(主轴对齐方式)、align-items(交叉轴对齐方式)、align-content、flex(flex-grow, flex-shrink 和 flex-basis的简写)
7.http2.0与http1.1的区别有哪些
http1.1:引入了持久连接、在同一个TCP连接里面,客户端可以同时发送多个请求
http2.0:二进制帧、多路复用、报头压缩、服务器推送
8.反问
线下面的,整天20分钟左右
====
更新,已挂,感觉答得很好,哎,已放入公司库
#我的失利项目复盘#