2020 举步维艰

669 阅读4分钟

浏览器

浏览器渲染原理

分为 页面加载过程、浏览器渲染过程

页面加载过程

---> 输入域名

  1. DNS解析得到ip
  2. 向ip发出请求
  3. 服务器收到、处理并返回请求
  4. 浏览器得到返回结果

浏览器渲染过程

  1. 解析html生成dom树
  2. 解析css生成css规则树
  3. 解析js操作dom和css
  4. 浏览器引擎通过dom树和css规则树得到render树
  5. 然后计算每个Frame 的位置,这又叫layout和reflow过程。

注意

渲染过程中,如果遇到<script>就停止渲染,执行 JS代码。GUI渲染线程与JS引擎线程为互斥关系。 浏览器有GUI渲染线程与JS引擎线程,为了防止渲染出现不可预期的结果,这两个线程是互斥的关系。

cookie的属性

name:字段名

value:cookie的值

domain:可以访问到此coockie的域名

path:可访问的页面路径

ecpires/max-age 超时时间

size:cookie的大小

httpOnly:true,不能用document.cookie来访问cookie,只有在http请求头中才会有带有cookie信息

secure:是否只能通过https来传递此cookie


DOM

事件捕获 事件冒泡 事件委托,给动态生成的dom每一个添加事件监听

捕获过程 目标过程 冒泡过程

[Object].addEventListener("name_of_event", fnHandler, bCapture);

bCapture 为true 捕获型,false为冒泡型

阻止传播 stopPropagation

DOM的事件对象与ie事件对象的最主要的不同点是什么

Ie 是冒泡型事件 dom 是先捕获再冒泡


html

doctype

doctype用于告诉浏览器以什么规范来解析文档

如果doctype没有声明或者格式错误会导致浏览器以混杂模式解析

混杂模式以向后兼容的方式以避免站点无法工作

严格模式以浏览器支持的最高标准解析

新特性 新标签

h5

  1. 语义化标签
  2. 拖拽和释放api
  3. 表单控件calendar data time email url search
  4. websocket geolocation webworker
  5. localstorage 和 sessionstorage
  6. canvas
  7. geolocation
  8. audio 和 video

css3

  1. rgba
  2. text-shadow
  3. border-radius、box-shadow
  4. 盒子模型
    • ie盒模型 将padding和border包含到content内 实际宽度=width
    • 标准盒模型 实际宽度=width+2padding+2border
  5. background-size和background-origin background-clip 裁剪图像 可用于自适应布局
  6. linear-gradient 和 radial-gradient 渐变
  7. transition 过渡
  8. animation 动画
  9. ::selection 伪元素
  10. 媒体查询
  11. transform 2、3d转换
  12. border-image

js

数据类型

基本数据类型:number undefined null boolean string 存在栈内

引用数据类型:object array function data 栈内存地址 堆中存值

typeof的值有number、boolean、string、symbol、object、undefined、function 七种值 其他类型都返回 object

[] instanceof Array //true

// 但是 
let a = 2
a instanceof Number //false

模块化

构造函数

this

js继承

js原型链

js防抖节流

闭包

深浅拷贝

Promise

什么是回调地狱

同步和异步的区别

同步:一件事做完在做下一件事

异步:规划要做一件事,但不立即去做,先做别的事情

get和post性能有区别吗

箭头函数的特点

  • 没有prototype属性
  • 不能用call aplly bind改变this指向
  • this指向外层函数
  • 没有argument对象

js性能优化

  • 资源加载优化,浏览器渲染相关
  • 合理合并http请求
  • 合理设置http缓存
  • dns预解析
  • 懒加载
  • ===全等
  • 垃圾回收,内存泄漏
  • 防抖和节流/回流和重绘

垃圾回收

标记清除、引用计数

webpack原理


css

盒子模型

垂直居中

position

flex

css 画个圆

回流和重绘

什么是BFC,怎么开启BFC,具体应用场景


vue

v-show v-if的区别

父子组件通信 props $emit

兄弟组件通信 bus

双向数据绑定原理

数据劫持 object.defineProperty

数据代理

发布和订阅的模式

vue-router原理

虚拟DOM,为什么要引入虚拟DOM

diff算法

vue中怎么实现继承 extend

vuex的实现


网络

关于原生ajax

跨域

  • jsonp
  • nginx
  • node中间件

jsonp跨域原理

利用 <script> 标签没有跨域限制

  • 创建script标签,请求地址复制给src
  • 服务器收到请求,然后做特殊处理
  • 客户端接到返回数据执行回调函数

axios底层

www.jianshu.com/p/73f636288…

状态码

  • 200 成功
  • 300+ 重定向
  • 404 找不到
  • 400 请求错误
  • 408 服务器超时
  • 500 服务器错误
  • 504 网关超时

TCP


算法基础

快排

冒泡

归并

数组和链表的区别

反转链表

数组去重复