• 记录 Rollup 初代是如何分析代码的

    在使用 JS 开发的过程中,我们常常会希望将完成一部分功能的代码分隔成单独的文件,这样带来的问题是在浏览器中运行时会产生很多小文件请求,解决办法就是使用模块打包工具将这些小文件归集在一个文件中,Bro...

    发布于 | 更新于
  • 从需求出发阅读 Vue 源码之响应式基础(Vue 3)

    在 JavaScript 中有两种劫持 property 访问的方式:getter / setter 和 Proxy。Vue 2 使用 getter / setter 完全是出于支持旧版本浏览器的限制...

    发布于 | 更新于
  • 从需求出发阅读 Vue 源码之响应式基础(Vue 2)

    今天这篇笔记以响应式基础为主题继续从需求出发阅读 Vue 源码,有了之前两篇笔记从需求出发阅读 Vue 源码之声明式渲染(Vue 2)和从需求出发阅读 Vue 源码之声明式渲染(Vue 3)的经验,我...

    发布于 | 更新于
  • 从需求出发阅读 Vue 源码之声明式渲染(Vue 3)

    在从需求出发阅读 Vue 源码之声明式渲染(Vue 2)这篇笔记当中解读了有关 vue@2.6.14 在声明式渲染上的特点,今天这篇笔记作为补充篇来解读 vue@3.3.13 在声明式渲染上的变化。v...

    发布于 | 更新于
  • 从需求出发阅读 Vue 源码之声明式渲染(Vue 2)

    一个成熟框架或者工具的源码阅读对于我们来说常常不是一件容易的事情,面对很大的代码量和复杂的逻辑,总有同学在源码阅读的过程中逐渐被“劝退”,所以这个系列的笔记尝试从需求出发阅读源码,试试能不能让这个过程...

    发布于 | 更新于
  • 使用 logisim 设计实现单周期 CPU

    相信大家看了历史上的计算机还有基本数字逻辑电路这两篇笔记之后,肯定也像我一样迫不及待地想要自己动手实现一个 CPU 了吧,所以这篇笔记记录设计实现一块简单的单周期 CPU (MIPS 模型机)的过程。

    发布于 | 更新于
  • 计算机二进制数

    计算机使用的计算方式和人使用的不同。最重要的区别是计算机中的操作数的精度是有限的而且是固定的。另一个不同之处是计算机使用二进制表示法而不是十进制表示法。在大多数计算机中,保存数的内存位数是固定的,而且...

    发布于
  • 基本数字逻辑电路

    在查阅资料了解了一些历史上的计算机之后,我对现代计算机的运行方式有了兴趣,所以就继续查资料满足我的好奇心,这篇笔记记录一些基本的数字逻辑电路。开始之前先分享几个非常好用的工具,一个是 draw.io ...

    发布于
  • 纠错码(Error-correcting codes)

    由于电源线的尖峰电压或者其他原因,计算机主存偶尔也会出现错误。这些错误可能导致软件无法正常使用,记录的信息不正确等。当用户频繁遇到这些问题,很可能把计算机砸掉的心都有了。为防止这些错误,一些主存中采用...

    发布于 | 更新于
  • 历史上的计算机

    现代数字计算机出现以来,人们已经设计制造出几百种不同类型的计算机。出于对不同时代的计算机是如何运作又长什么样子的好奇,我查阅了一些资料将其中具有代表性的机器记录下来。第零代:机械计算机(1642-19...

    发布于 | 更新于
  • CSS BFC 块级格式化上下文

    我理解的 BFC(块级格式化上下文)就是一个块级盒子,当它通过一定的方式成为一个 BFC 之后,其内部将作为一个独立的空间布局环境。根据 MDN 上的描述下列的方式会创建格式化上下文:根元素(<htm...

    发布于 | 更新于
  • CSS 清除浮动

    float 浮动属性float CSS 属性指定一个元素应沿其容器的左侧或右侧放置,允许文本和内联元素环绕它。该元素从网页的正常文档流中移除,然后向左或者向右平移,一直平移直到碰到了所处的容器的边框,...

    发布于 | 更新于
  • SSH 使用密钥登录

    每次使用 SSH 连接服务器都需要输入密码非常的不方便,可以使用密钥进行 SSH 免密登录,大致步骤就是客户端创建公钥私钥,并将公钥复制到服务器,然后客户端使用私钥登录到服务器。在需要使用密钥登录的客...

    发布于
  • 音频可视化

    首先推荐一下 wavesurfer.js 这个非常好用的可定制化的音频可视化工具,基于 Web Audio API 和 HTML5 Canvas 实现,支持很多插件(比如生成音频频谱图),具体使用方法...

    发布于
  • 防抖(debounce)与节流(throttle)

    防抖防抖可以让我们把多个连续事件合并为一个去执行。想象你正在坐电梯,当电梯门开始关闭的时候,突然另一个人要乘坐电梯,这时候电梯会停止关门的操作,直到一段时间之后没有其他人要乘坐电梯为止。电梯会延迟关门...

    发布于 | 更新于
  • 前端面试中的算法题(一)

    1.驼峰转下划线function toLine(str) { return str.replace(/\B([A-Z])/g, '_$1').toLowerCase()}toLine('getInf...

    发布于
  • HTML <link> 资源预加载

    <link> 外部资源链接元素HTML 外部资源链接元素(<link>)规定了当前文档与外部资源的关系。该元素常用于链接样式表,此外也可以被用来创建站点图标(比如 PC 端的 favicon 图标和移...

    发布于 | 更新于
  • JS 事件循环

    JavaScript 语言的一大特点是单线程,作为浏览器脚本语言,JavaScript 的主要用途是与用户互动,以及操作 DOM,如果 JavaScript 同时有两个线程,可能会出现一个线程在某个 ...

    发布于 | 更新于
  • HTTP 消息结构

    HTTP 是基于客户端/服务端(C/S)的架构模型,通过一个可靠的链接来交换信息,是一个无状态的请求/响应协议。一旦建立连接后,数据消息就通过类似 internet 邮件所使用的格式 RFC5322 ...

    发布于 | 更新于
  • 常用 HTTP 响应状态码

    HTTP 响应状态代码指示特定 HTTP 请求是否已成功完成。响应分为五类:信息响应(100–199),成功响应(200–299),重定向(300–399),客户端错误(400–499)和服务器错误 ...

    发布于
  • 基于 vue+qiankun 的前端微服务权限系统 demo

    演示地址源码地址什么是前端微服务微服务是一种用于构建应用的架构方案。微服务架构有别于更为传统的单体式方案,可将应用拆分成多个核心功能,每个功能都被称为一项服务,可以单独构建和部署,这意味着各项服务在工...

    发布于 | 更新于
  • 经典排序算法的 JS 实现

    冒泡排序function sort(array){ for(var i = 0; i < array.length - 1; i++){ for(var j = 0; j < array.le...

    发布于 | 更新于
  • 二叉堆与优先队列

    二叉堆本质上是一种完全二叉树,它分为两种类型:1. 最大堆;2. 最小堆。最大堆的任何一个父节点的值,都大于或等于它左右孩子节点的值。最小堆的任何一个父节点的值,都小于或等于它左右孩子节点的值。二叉堆...

    发布于 | 更新于
  • MySQL语句必知必会(二)

    使用数据处理函数select Upper([column_name]) as [upcase_alias] from [table];select [column_name] from [table]...

    发布于
  • 二叉树遍历

    根据二叉树前序遍历顺序创建的数组构建一个二叉树function Node(data, left, right){ this.data = data this.left = left this.r...

    发布于 | 更新于
  • MySQL语句必知必会(一)

    选择数据库use [database];返回所有数据库列表show databases;返回数据库中所有表的列表show tables;显示表列show columns from [table];de...

    发布于
  • 关于我的网络笔记

    早在2016年,也就是我在太原工业学院就读大二期间,我看到我身边有的同学竟然用自己编写代码的方式实现了一个有趣的应用,只要你输入你的家乡城市名,它就可以计算出你的家乡距离学校有多远,划船需要多久,骑自...

    发布于
©2018-2024 知行 · 陈涛的网络笔记 · 晋ICP备19000910号-1