摘要: 1. 事件循环 JS是单线程执行的(浏览器渲染进程的渲染主线程),它怎么处理各种各样的异步操作和事件呢?最早的方案是回调,如SetTimeout来设置定时器,或通过XmlHttpRequest(ActiveXObject)来异步下载文件或调用后端API,如Node中可以使用readFile来读取文件 阅读全文
posted @ 2020-09-26 23:11 lswtianliang 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 一. 浏览器系统安全方面,使用多进程方案,而js主线程运行在渲染进程中,渲染进程时运行在沙箱中的,没有对本地OS文件的直接读写权限,所以需要通过IPC与浏览器主线程通信,才可以获取cookie等信息,这样就限制了恶意JS对本地OS系统的置入病毒或者恶意程序。 二. 网络安全方面Https 实现安全加 阅读全文
posted @ 2020-09-24 21:48 lswtianliang 阅读(896) 评论(0) 推荐(0) 编辑
摘要: 1. http2.0,或许是一个过渡协议 a. 它兼容1.1版本,2015年左右发布,目前部分知名网站已经开始使用,它依然基于TCP协议,主要focus on performance。 b. 很多请求都是头部很多内容,实际传输的内容很少,所以http2.0做了头部压缩。不过 HTTP/2 并没有使用 阅读全文
posted @ 2020-09-23 23:30 lswtianliang 阅读(3819) 评论(1) 推荐(0) 编辑
摘要: 1. http是应用层协议,从1990年左右,0.9版本起步,到1993年1.0版本发布, 2000年左右发布1.1,2015年http2发布,还有目前还在草案的http3,现在很多网站还在使用20年前的http1.1,所以我们主要focus 1.1版本。 2. http报文有3部分组成,请求/响应 阅读全文
posted @ 2020-09-23 22:05 lswtianliang 阅读(155) 评论(0) 推荐(0) 编辑
摘要: BF 算法 BF 是 Brute Force 的缩写,中文叫作暴力匹配算法,也叫朴素匹配算法 比如字符串A主串中找是否存在模式串B,就是一位一位的对应匹配。 BF 算法的思想可以用一句话来概括,那就是,我们在主串中,检查起始位置分别是 0、1、2…n-m 且长度为 m 的 n-m+1 个子串,看有没 阅读全文
posted @ 2020-08-28 23:46 lswtianliang 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 4大经典算法问题 如果我们将这四种算法思想分一下类,那贪心、回溯、动态规划可以归为一类,而分治单独可以作为一类,因为它跟其他三个都不大一样。为什么这么说呢?前三个算法解决问题的模型,都可以抽象成我们今天讲的那个多阶段决策最优解模型,而分治算法解决的问题尽管大部分也是最优解问题,但是,大部分都不能抽象 阅读全文
posted @ 2020-08-27 12:24 lswtianliang 阅读(1618) 评论(0) 推荐(0) 编辑
摘要: 一种非线性表数据结构,无向图,有向图,程序文件依赖问题,还有带权图,它最直观的存储方式二维临接矩阵 广度优先BFS 深度优先DFS 一直往下递推变量,直到遇到visited节点在返回。 总结 广度优先搜索,通俗的理解就是,地毯式层层推进,从起始顶点开始,依次往外遍历。广度优先搜索需要借助队列来实现, 阅读全文
posted @ 2020-08-27 12:18 lswtianliang 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 散列表,哈希表,hash表,Hashtable 都是同一个概念 1. 散列表来源于数组,它借助散列函数对数组这种数据结构进行扩展,利用的是数组支持按照下标随机访问元素的特性。 2. 散列函数,即通过一个方法让hash(key)尽可能均匀的分布到预置容器长度内,但几乎不可能避免散列冲突。散列函数的设计 阅读全文
posted @ 2020-08-26 23:44 lswtianliang 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 1, 树,平时最常用的树就是二叉树(其实也有多叉树),二叉树可以用链表和数组来存储。 2,二叉树,最多只有两个子节点,满二叉树是指叶子节点都在最底层,其余所有节点都有左右2个子节点,他是一种特殊的完全二叉树。 3. 完全二叉树,是指叶子节点都在最底2层,最后一层叶子节点靠左边排列,并且除了最后一层, 阅读全文
posted @ 2020-08-22 15:56 lswtianliang 阅读(309) 评论(0) 推荐(0) 编辑
摘要: 1.跳表是一种动态的数据结构(往跳表中插入数据时,我们需要不断的更新索引),它可以支持快速的插入、删除、查找功能,甚至可以替换红黑树,但实际使用不多,主要是红黑树出来的比较早,很多系统级别类库已经内置。 2. 一个链表,查找效率是O(n),如果给它建立索引,二级(多级)索引,先在索引里查找,然后在逐 阅读全文
posted @ 2020-08-22 15:28 lswtianliang 阅读(181) 评论(0) 推荐(0) 编辑