前言 本次面试面试了很多家公司,包括 360,美团,猿辅导,小米,腾讯地图,头条,新东方,快手,知乎等几家公司,刚开始去面试的时候那段时间状态不是很好(基本每天都加班到很晚,...
前言 本次面试面试了很多家公司,包括 360,美团,猿辅导,小米,腾讯地图,头条,新东方,快手,知乎等几家公司,刚开始去面试的时候那段时间状态不是很好(基本每天都加班到很晚,...
websocket http是一个请求、必须有一个响应,http1.1中keepalive后也是一个tcp可以发多次请求,但还是一个请求配一个响应websocket协议,让浏...
xss 1、用户输入什么直接显示在页面中,导致被恶意输入 2、如果用户输入的前端没有校验发送给服务端,服务也没有校验,那么重新获取时就会出现攻击 解决:前端后台都需要对用户的...
css 水平、垂直居中 1、 已知元素宽高<1>absolute+负margin --- 必须要定宽高<2>absolute+top、bottom、left、right=0...
cookie、session、jwt cookie是将用户信息存在cookie中,但是不安全session验证是登录成功后服务端将用户信息持久化,将session_id设置在...
esm和commonjs规范的区别 1、esm是引用赋值,并且是编译时加载。模块内部引用的变化,会反应在外部 一个模块中可以有多个export,但是只能有一个export d...
BOM对象模型 跨域相关问题 浏览器渲染 1、构建 dom 树和 csscom2、生成渲染树:从DOM树的根节点开始遍历每个可见节点,对于每个可见的节点,找到CSSOM树中对...
1.webpack (1)初始化参数:从配置文件和 Shell 语句中读取与合并参数,得出最终的参数;(2)开始编译:用上一步得到的参数初始化 Compiler 对象,加载所...
MVVM model和view层通过中间的vm连接和驱动。model层数据变化会改变视图,view改变通过事件来修改数据。vue参考了MVVM实现了双向绑定,react是MV...
闭包和作用域 原型和原型链 所有原型链的终点都是 Object 函数的 prototype 属性每一个构造函数都拥有一个 prototype 属性,此属性指向一个对象,也就是...
gpu加速 will-change:left -> 浏览器就知道left属性会变化,从而使用gpu加速优化性能。transform:tarnlateZ(0) ->开启新图层,...
树 一棵树可以没有任何节点称为空树,可以只有一个节点root一棵树可以分为多个子树组合,二叉树有左子树、右子树。节点的度:这个节点子树的个数。上图的节点1度为5,节点2的度为...
class Node {constructor(ele, parent) {this.left = null;this.right = null;this.parent = ...
单向循环队列 可以使用数组来实现队列,并且各项接口也可以优化到 O(1) 的时间复杂度--这就是循环队列 循环双端队列 可以进行两端添加、删除操作的循环队列
单向队列 queue使用链表是因为deQueue需要对头部元素进行出队列操作,链表对头部操作效率比数组高,数组需要移动 双端队列 双端队列是可以在头部和尾部都进行入队和出队操作。
单向循环链表
双向链表删除、添加的复杂度都会降到O(n/2). 如果频繁在尾部进行添加、删除操作,动态数组、双向链表均可选择 如果频繁在头部进行添加、删除操作,建议选择使用双向链表 如果有...
单向链表优点:不会造成内存空间的浪费,需要多少开辟多少。单向链表缺点:会频繁的开辟、删除内存空间。 由于添加、删除链表元素都需要判断是否是操作第一个节点,可以采用增加虚拟头节...
数组在内存中是连续保存的,容量也是在一开始就确定的,很多编程语言中,数组都有个缺点就是不可以动态的修改容量。或者底层已经封装好了一套动态数组的数据结构。自己实现动态数组:代码...