03 2020 档案
摘要:JS 排序算法之计数和基数排序 [Toc] 计数排序 利用数组的index是天然有序的特征来排序. 例如: 已知一个乱序数组的范围是0~10,长度未知, 我们只需要遍历一遍数组,点出每个值出现的次数,并用一个新数组来存储这个次数,就能做到排序. 假如数字1出现3次, 那么新数组newAry[1]=3
阅读全文
摘要:排序算法之堆排序 [Toc] 什么是堆? + 堆是一颗完全二叉树 + 堆分为 最大堆和最小堆 + 最大堆父节点都大于子节点, 最小堆父节点都小于子节点 + 左子节点: 2 i +1 (i: 父节点index) + 右子节点: 2 i+2 堆排序 利用最大堆实现升序, 最小堆实现降序. 因为最大堆的根
阅读全文
摘要:JS排序算法之快排和归并 [Toc] 快速排序 原理: 选择一个key(一般是第一个元素), 将数组划分为两个区域. 左边全部区域小于等于key, 右边全部大于key. 然后在通过这种方法将每个区域划分为两个区域. 整个过程可以递归实现,以此实现整个数据有序 + 时间复杂度: O(n log(n))
阅读全文
摘要:JS排序之简单排序 [Toc] 冒泡排序 + 时间复杂度: O(n^2) + 稳定的排序算法 + 特点: 从后向前找,有序区数字一定全部小于(或大于)无序区数字 + 性能: 慢 + 优化: 双向冒泡(鸡尾酒排序) JavaScript function straightInsertionSort(a
阅读全文
摘要:CSS 几种常用的水平垂直居中对齐方法 [Toc] 文字的水平垂直居中 元素的水平垂直居中 1 使用绝对定位 2 使用绝对定位+ calc() 3. 使用绝对定位+transform 4. 使用display:flex;
阅读全文
摘要:CSS 百分比都是相对于谁计算 [Toc] 相对于父级元素宽高 + , , ,`padding text indent` ... 等 相对于父级定位元素宽高 + , , , 相对于自身宽高 + , , , 相对于自身字体大小 + 相对于继承字体大小 + `font size`
阅读全文
摘要:网页优化 [Toc] 上一章介绍了 "从输入地址到到显示网页浏览器都干了什么" ,绝大部分的优化都在这个过程中 减少HTTP请求 减少HTTP请求是优化的重要手段 1. 减少图片使用 2. 对小图标这一类图片使用 合并, 或者使用 编码图片 1. 优点: 减少了请求 2. 缺点: 修改维护不方便,
阅读全文
摘要:输入地址到显示页面发生了什么 [Toc] 简单版 1. 浏览器发起DNS请求,解析域名得到 地址 2. 封装 请求报文,并发送给服务器 3. 服务器接收请求并处理请求,封装 响应报发送会浏览器 4. 浏览器解析响应报文, 遇到新资源继续请求 5. 浏览器根据解析结果生成 树, 树, 进行页面布局和渲
阅读全文
摘要:CSS3 3种隐藏元素方法的区别 [Toc] display: none 1. 结构: 浏览器不会渲染 的元素, 并且不占据页面空间 2. 事件监听: 无法对元素进行事件监听 3. 继承: 不会被子元素继承(子元素设置 不会显示) 4. 改动: 改动属性值会引起页面的 重排 和 重绘 5. 过渡:
阅读全文
摘要:CSS布局 两栏固定中间自适应的几种方法 [Toc] HTML结构 最终效果图 一: 浮动 + 相对定位 + margin负值 这种结构要改一下, middle要放在第一位. 使用margin负值来让元素处于同一行 重点: 浮动和margin负值的使用 👈 缺点: 在中间元素宽度被压到很小的时候结
阅读全文

浙公网安备 33010602011771号