摘要:
三次握手和四次挥手详细原理,为什么要使用这种机制? 当进行第一次握手,网络不好可能会堵塞,所以连接的请求并没有到达服务器端;但是tcp连接有超时重传的机制,所以再一次发送请求,这时候服务器端接收到了你的请求,他也会返回一个请求给你,这是第二次握手;但是这时候网络环境突然又好了起来,那个堵塞的请求到达 阅读全文
posted @ 2023-03-05 21:58
不想做混子的奋斗远
阅读(81)
评论(0)
推荐(0)
摘要:
理解什么是协议? 互联网的实现,分为好几层。每一层都是为了完成一种功能。为了实现这些功能,就需要大家都遵守共同的规则。大家都遵守的规则,就叫做"协议" 了解TCP/IP网络协议族的构成? 应用层、传输层、网络层、数据链路层、物理层 每层协议在应用程序中发挥的作用 阅读全文
posted @ 2023-03-05 20:51
不想做混子的奋斗远
阅读(23)
评论(0)
推荐(0)
摘要:
理解代码到底是什么,计算机如何将代码转换为可以运行的目标程序 代码就是程序员用开发工具所支持的语言写出来的源文件,是一组由字符、符号或信号码元以离散形式表示信息的明确的规则体系。代码设计的原则包括唯一确定性、标准化和通用性、可扩充性与稳定性、便于识别与记忆、力求短小与格式统一以及容易修改等。 计算机 阅读全文
posted @ 2023-03-05 20:45
不想做混子的奋斗远
阅读(68)
评论(0)
推荐(0)
摘要:
实现常用布局 两栏布局 三栏、圣杯、双飞翼 圣杯布局和双飞翼布局是前端工程师需要日常掌握的重要布局方式。两者的功能相同,都是为了实现一个两侧宽度固定,中间宽度自适应的三栏布局。(中间先加载渲染) 圣杯布局 relative margin-left: -100%; <style> .container 阅读全文
posted @ 2023-03-05 19:43
不想做混子的奋斗远
阅读(84)
评论(0)
推荐(0)
摘要:
使用纯CSS实现曲线运动(贝塞尔曲线) 阅读全文
posted @ 2023-03-05 17:12
不想做混子的奋斗远
阅读(137)
评论(0)
推荐(0)
摘要:
使用CSS绘制几何图形(圆形、三角形、扇形、菱形等) //圆形 <div class="circle"></div> <style> .circle { border-radius: 50%; width: 80px; height: 80px; background: #666; } //扇形 < 阅读全文
posted @ 2023-03-05 17:11
不想做混子的奋斗远
阅读(146)
评论(0)
推荐(0)
摘要:
1.column多行布局实现瀑布流 column 实现瀑布流主要依赖两个属性。 column-count 属性,是控制屏幕分为多少列。 column-gap 属性,是控制列与列之间的距离。 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" 阅读全文
posted @ 2023-03-05 17:11
不想做混子的奋斗远
阅读(218)
评论(0)
推荐(0)
摘要:
11 阅读全文
posted @ 2023-03-05 17:03
不想做混子的奋斗远
阅读(16)
评论(0)
推荐(0)
摘要:
-moz代表firefox浏览器私有属性 -ms代表IE浏览器私有属性 -webkit代表chrome、safari私有属性 -o代表opera私有属性 -webkit-transform:rotate(-3deg); /*为Chrome/Safari*/ -moz-transform:rotate 阅读全文
posted @ 2023-03-05 16:33
不想做混子的奋斗远
阅读(36)
评论(0)
推荐(0)
摘要:
CSS模块化方案、如何配置按需加载、如何防止CSS阻塞渲染 阅读全文
posted @ 2023-03-05 16:30
不想做混子的奋斗远
阅读(40)
评论(0)
推荐(0)
摘要:
PostCSS、Sass、Less的异同,以及使用配置,至少掌握一种 引入变量 Less中的变量,在声明中使用时,如果出现多次赋值的情况,其会取最后一次赋值的值 Sass/Stylus中的变量,如果出现多次赋值的情况,其会取声明前面最近的一次赋值的值 mixin 在Less中,可以直接引入一个CSS 阅读全文
posted @ 2023-03-05 16:24
不想做混子的奋斗远
阅读(157)
评论(0)
推荐(0)
摘要:
文本阴影 文本裁剪 文字描边 文本填充 text-fill-color 渐变效果 linear-gradient(方位, 起始色, 末尾色) 后面的暂时随用随查 阅读全文
posted @ 2023-03-05 16:14
不想做混子的奋斗远
阅读(41)
评论(0)
推荐(0)
摘要:
什么是BFC BFC 全称是 Block Formatting Context,即块格式化上下文。它是 CSS2.1 规范定义的,关于 CSS 渲染定位的一个概念。它是一个独立的渲染区域,只有 Block-level box 参与, 它规定了内部的 Block-level Box 如何布局,并且与这 阅读全文
posted @ 2023-03-05 16:07
不想做混子的奋斗远
阅读(85)
评论(0)
推荐(0)
摘要:
水平垂直居中的方案可以实现6种以上并对比它们的优缺点 父、子元素宽高未知时: ①flex布局 ②绝对定位+transform (定位的上、左为 50%,translate 上、左负 50%) ③绝对定位+margin:auto ④直接使用table ⑤Grid网格布局 .parent { displ 阅读全文
posted @ 2023-03-05 15:42
不想做混子的奋斗远
阅读(55)
评论(0)
推荐(0)
摘要:
HTML文档流的排版规则 CSS几种定位的规则、定位参照物、对文档流的影响 如何选择最好的定位方式,雪碧图实现原理 阅读全文
posted @ 2023-03-05 15:35
不想做混子的奋斗远
阅读(26)
评论(0)
推荐(0)
摘要:
CSS盒模型,在不同浏览器的差异 盒子模型有两种,分别是IE盒子模型和标准w3c盒子模型。 标准w3c盒子模型的范围包括 margin、border、padding、content,并且content部分不包括其它部分。 IE盒子模型的范围也包括 margin、border、padding、cont 阅读全文
posted @ 2023-03-05 15:33
不想做混子的奋斗远
阅读(87)
评论(0)
推荐(0)
摘要:
优势? 离线浏览 - 用户可在应用离线时使用它们。 速度 - 已缓存资源加载得更快。 减少服务器负载 - 浏览器将只从服务器下载更新过或更改过的资源。 原理: HTML5的离线存储是基于一个manifest文件(缓存清单文件,后缀为.appcache)的缓存机制(不是存储技术),通过这个文件上的清单 阅读全文
posted @ 2023-03-05 15:29
不想做混子的奋斗远
阅读(47)
评论(0)
推荐(0)
摘要:
head的使用目的和配置方法 使用目的: HTML 头部包含 HTML <head> 元素的内容,与 <body> 元素内容不同,页面在浏览器加载后它的内容不会在浏览器中显示,它的作用是保存页面的一些元数据 配置方法就是 <head> <meta charset="utf-8" /> <title> 阅读全文
posted @ 2023-03-05 15:24
不想做混子的奋斗远
阅读(198)
评论(0)
推荐(0)
摘要:
常用页面标签的默认样式、自带属性 默认样式 li {display: list-item }`/*默认以列表显示*/` head {display: none }/*默认不显示*/ table {display: table }/*默认为表格显示*/ tr {display: table-row } 阅读全文
posted @ 2023-03-05 14:39
不想做混子的奋斗远
阅读(91)
评论(0)
推荐(0)
摘要:
①用正确的标签做正确的事情 ②html语义化让页面的内容结构化,结构更清晰,便于对浏览器、搜索引擎解析;即使在没有CSS情况下也以一种文档格式显示,并且是容易阅读的。 ③搜索引擎的爬虫也依赖于HTML标记来确定上下文和各个关键字的权重,利于SEO ④使阅读源码的人对网站更容易将网站分块,便于阅读维护 阅读全文
posted @ 2023-03-05 14:29
不想做混子的奋斗远
阅读(26)
评论(0)
推荐(0)
摘要:
懒加载 阅读全文
posted @ 2023-03-05 10:25
不想做混子的奋斗远
阅读(22)
评论(0)
推荐(0)
摘要:
模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档。 模板引擎的原理 模板引擎的实现方式有很多,最简单的是“置换型”模板引擎,这类模板引擎只是将指定模板内容(字符串)中的特定标记(子字 阅读全文
posted @ 2023-03-05 10:24
不想做混子的奋斗远
阅读(69)
评论(0)
推荐(0)
摘要:
JSON.stringify JSON.stringify() 方法将一个 JavaScript 对象或值转换为 JSON 字符串,如果指定了一个 replacer 函数,则可以选择性地替换值,或者指定的 replacer 是数组,则可选择性地仅包含数组指定的属性。 JSON.stringify(v 阅读全文
posted @ 2023-03-05 10:22
不想做混子的奋斗远
阅读(52)
评论(0)
推荐(0)
摘要:
可以说出两种实现双向绑定的方案、可以手动实现 1.手动绑定 Object.defineProperty <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="widt 阅读全文
posted @ 2023-03-05 10:18
不想做混子的奋斗远
阅读(50)
评论(0)
推荐(0)
摘要:
EventEmitter EventEmitter (事件派发器)是 Node.js 的核心模块 events 中的类,用于对 Node.js 中的事件进行统一管理,用 events 特定的 API 对事件进行添加、触发和移除等等,EventEmitter 的核心就是事件触发与事件监听器功能的封装。 阅读全文
posted @ 2023-03-05 10:14
不想做混子的奋斗远
阅读(669)
评论(0)
推荐(0)
摘要:
经常有人说async函数是generator函数的语法糖,那么到底是怎么样一个糖呢?让我们来一层层的剥开它的糖衣。 有的同学想说,既然用了generator函数何必还要实现async呢? 这篇文章的目的就是带大家理解清楚async和generator之间到底是如何相互协作,管理异步的。 const 阅读全文
posted @ 2023-03-05 10:09
不想做混子的奋斗远
阅读(71)
评论(0)
推荐(0)
摘要:
暂时搁置 阅读全文
posted @ 2023-03-05 10:07
不想做混子的奋斗远
阅读(18)
评论(0)
推荐(0)
摘要:
Function.prototype.mycall = function(obj){ var args = Array.prototype.slice.apply(arguments,[1]); obj.fn = this; obj.fn(...args);//es6的解构语法,也可以使用obj.f 阅读全文
posted @ 2023-03-05 10:06
不想做混子的奋斗远
阅读(38)
评论(0)
推荐(0)
摘要:
实现一个sleep函数 ①利用堵塞循环实现,因为js是单线程的,所以这个其实就是根本上的sleep function sleep(delay) { var start = (new Date()).getTime(); while ((new Date()).getTime() - start < 阅读全文
posted @ 2023-03-05 09:47
不想做混子的奋斗远
阅读(79)
评论(0)
推荐(0)
摘要:
手写防抖和节流工具函数、并理解其内部原理和应用场景 防抖 // 防抖: 一个函数 在设置的时间后执行 如果在设置的时间间隔期间再次触发 那么本次就无效 重新计算 // 触发高频时间后n秒内只会执行一次 如果n秒高频时间内再次触发 则会重新计算时间 // 原理 debounce 触发后 首先清除掉ti 阅读全文
posted @ 2023-03-05 09:41
不想做混子的奋斗远
阅读(38)
评论(0)
推荐(0)
摘要:
手写函数柯里化工具函数、并理解其应用场景和优势 什么是柯里化(Curring)??? 什么意思?简单来说,柯里化是一项技术,它用来改造多参数的函数。 简单讲就是把一个多参数的函数f,变换成接受部分参数的函数g,并且这个函数g会返回一个函数h,函数h用来接受其他参数。函数h可以继续柯里化。就是一个套娃 阅读全文
posted @ 2023-03-05 09:39
不想做混子的奋斗远
阅读(220)
评论(0)
推荐(0)
摘要:
前情提要 深拷贝:拷贝的是对象或者数组内部数据的实体,重新开辟了内存空间存储数据;浅拷贝:拷贝的是引用类型的指针,副本和原数组或对象指向同一个内存; ①递归方式 比较全面的深拷贝,缺点是较为繁琐 function deepClone(obj) { var target = {}; for(var k 阅读全文
posted @ 2023-03-05 09:11
不想做混子的奋斗远
阅读(91)
评论(0)
推荐(0)
摘要:
前情提要: map函数接收一个函数作为参数,作为参数的函数接收三个参数值,分别是遍历数组的每一项元素,元素的索引和数组本身。这三个参数刚好和reduce函数接收的第一个函数参数的第2、3、4个参数是对应的。这是实现的核心 实现思路是,将每次遍历的元素,作为传入的函数的参数,并将函数执行的结果放入新的 阅读全文
posted @ 2023-03-05 09:04
不想做混子的奋斗远
阅读(61)
评论(0)
推荐(0)
摘要:
①遍历 forEach ②sort排序 取索引 ③使用Math.max + apply var max1 = Math.max.call(null,3, 0, -7, 39); ④使用Math.max + 扩展运算符 let max=Math.max(...arr); 阅读全文
posted @ 2023-03-05 08:54
不想做混子的奋斗远
阅读(16)
评论(0)
推荐(0)
摘要:
2019年的ES10中新增了扁平化API flat ①flat实现指定深度的数组扁平化 function flatten6(arr,depth = 1) { if (!Array.isArray(arr)) return [] if(typeof depth !== 'number') depth 阅读全文
posted @ 2023-03-05 08:51
不想做混子的奋斗远
阅读(71)
评论(0)
推荐(0)
摘要:
首先了解一下什么是数组扁平化? 将一个嵌套多层的数组Array(嵌套可以是任何层数)转换为只有一层的数组。 数组去重 先总结数组的方法:pop、push、shift、unshift、sort、splice、slice、revere、concat join、indexOf、map、forEach、in 阅读全文
posted @ 2023-03-05 08:34
不想做混子的奋斗远
阅读(87)
评论(0)
推荐(0)

浙公网安备 33010602011771号