我的面试总结

132 阅读2分钟

框架和库的区别??

框架是一套完整的解决方案,对项目的侵入性比较大,如果中途想更换框架,必须对整个项目进行重构
库提供某个小的功能,如果某个库无法完成所需功能,可以更换其他的库

前端性能优化

从三个方面考虑性能优化, 1:减少请求资源。

合并一部分图片,使用vue 的webpack 里面可以设置图片的压缩和设置某些图片小于某个大小直接转成base64 压缩代码

2:更快的请求速度。

使用cdn加速

使用缓存

3:页面的流畅度。

优化首屏加载,

4,vue 项目中的优化使用过的方法, 组件按需加载,

webpack 设置代码分块

跨域问题

由于浏览器的同源策略,协议,域名,端口号不通,都会出现跨域的想象,
解决方法: JSONP,CROS, 代理
http 1.0 和 1.1的区别

1.1 新增了缓存 Etag if-match if-none-match 长链接:connetion:keep-alive ;解决了1.0 解决了多次发送一个请求的问题

apply call bind 的区别,

apply 第二个参数是数组列表
call 和 bind 第二个参数是一个list
bind 修改this指向不会直接调用,因为它返回了一个新的函数

重绘和回流

什么时候发生回流??
1、添加或删除元素
2、元素位置和尺寸发生变化
3、元素内容发生变化
4、放大或缩小浏览器窗口

什么时候发生吗回流
1、 元素颜色发生变化 2、visibility样式变化

如何避免发生重绘和回流?
1、避免使用table布局
2、复杂动画的元素设置position: absolute 或者fixed
3、不要频繁操作style样式,可以设置一个class 设置玩样式后添加给元素 3、不要频繁操作dom, 可以设置一个dom节点进行完操作之后在添加到页面上

xss 跨站脚本攻击

攻击者会在客户端注入恶意代码, 这些代码会修改客户端页面,当用户访问页面的时候,或者点击连接,会获取用户的隐私信息。

包括反射型, 存储型, 和Dom型 反射型是将恶意代码注如到页面中蝇虎访问时,弹出广告或者重定向连接 存储型一般在客户端的输入框中出现,如在搜索和评论中,如果攻击者输入了恶意的代码,当再次访问这个页面的时候,就会执行评论的恶意代码

如何防止xss 攻击 设置HttpOnly 防止劫取 Cookie,输入检查

vue 强制刷新组件

this.$forceUpdate() 可以刷新当前组件

还可以使用v-if 或者设置:key属性并修改key的值