1. flex布局 flex-grow, flex-shrink , flex-basic, align-self()
2. css中的 BFC 块级格式化上下文 使用场景
2. 算法 <>{}[] [<>] 返回true <] 返回 false
3. vue2生命周期 vue3 生命周期区别
beforeCreate 通常用于插件开发中执行一些初始化任务
created 组件初始化, 可以访问数据 , 请求数据
mounted dom已创建, 可以访问数据和dom元素, 访问子组件
beforeupdate 数据更新, 但是视图还没有更新
beforeunmounted 实例被销毁前调用. 移除全局事件, 清除定时器
4. 重绘回流 区别以及怎么优化
回流是布局更新。 重绘是样式发生改变不影响布局
-
使用 visibility 替换 display: none ,因为前者只会引起重绘,后者会引发回流(改变了布局)
-
避免频繁操作样式
-
避免频繁操作DOM
-
对具有复杂动画的元素使用绝对定位,
5. webpack优化 ()
6. 项目亮点, 难点
6. 组件通信(1. 父子,属性绑定, props接收 ,2. 跨组件 eventBus , 触发监听, 3. 获取组件实例ref , 4. provider ,inject ,依赖注入传递属性方法 , 5. vuex 全局状态管理工具 , 统一管理 )
7.长连接/长轮询 , 高并发
8.promise , proxy
9. 商场秒杀, 拼团
10. 基本数据类型 , 深浅拷贝(JSON序列化, 递归拷贝新对象) ,
JSON序列化处理null和undefined, 不进行处理
11. 浏览器从输入 url 到渲染数据
一、URL解析,
如果URL中有文字就必须编码后使用 ,
浏览器在发送请求之前先检查有没有缓存缓存检查
二 、进行DNS域名解析
浏览器通过域名发起一个网络请求的时候, 会有DNS服务器将域名解析成ip地址
1. 浏览器缓存检查中有没有域名对应的ip地址,
2.那么就检查操作系统的本机hosts文件
3.本地区DNS域名服务器(LDNS)发起请求
4.如果LDNS也不能解析,那么就直接到根域名服务器请求解析。
三 、TCP协议
三次握手建立连接、客户端发送请求 , 服务器相应数据 , 四次挥手断开连接的过程
四 、浏览器解析并渲染响应内容
浏览器拿到文件后(拿到的是一些字节码)通过编码方式(一般是utf-8)转换为对应的字符
浏览器至上而下解析文档,遇见HTML标记,调用HTML解析器, 遇见style/link标记,调用CSS解析器处理CSS标记并构建CSSOM样式树, 遇见script标记,调用javascript解析器处理,绑定事件、修改DOM树/CSS树等; 合并成一颗render树 , 如果用户操作页面,会触发重排和重绘