note
note copied to clipboard
学习记录
### 浮点数的问题 浮点数具有不确定性,比如存在 `0.1 + 0.2 != 0.3` 这样的问题。 ``` >>> 0.1 + 0.2 0.30000000000000004 ``` ### 如何表示实数 计算机通常用 32/64 个 bit 来表示一个数,如果用 32 个 bit,能表达 2 ^ 32 个不同的数,差不多...
编译程序总体结构
**翻译程序** 一种语言的程序(源程序)翻译成等价的另一种语言程序(目标程序) 源程序是高级语言程序,目标程序是汇编或机器程序。 **解释程序** 源程序一句一句输入,翻译成目标程序 **编译程序** 源程序全部一次翻译成目标程序。 **编译系统** 编译系统 = 编译程序 + 运行系统(为程序运行提供环境,如运行库、链接等) **其它翻译程序** - 汇编 : 汇编-》机器 - 反汇编 - 交叉编译: 电脑上写的程序编译成 手机程序。 ### 八大模块
源代码修改方法
Stream 是处理文件和网络数据的有效方式,它是 unix 里引入的,程序可以通过管道符相互交互。 ## 为什么要用流处理数据 比如看电影时,1GB 大文件,是不能用 readFile 这样的方法的,因为: - readFile 方法在读取文件时是同步的,需要全部读完才能播放 - 资源文件最终会一次性加载到内存,导致占用内存过大 **流的好处** - 时间效率:开始处理数据所需时间要少得多,可以拥有数据后立即处理,而不是等到所有数据加载后 - 内存效率:同一时间流无需占据大内存空间 - 使用方便:流配合管道,扩展程序变得简单
fs 是 nodejs 核心模块,提供了文件系统的 API。 ## 权限位 - 用户对文件所具备的操作权限分为三类:读(r=4)、写(w=2)、执行(x=1) - r 表示可读,对目录来说,就是 ls 获取目录下的文件 - w 表示可写,对目录来说,就是在目录下创建文件和目录,或改名(可以修改文件内容) - x 表示可执行,对目录来说就是可进入。某些脚本文件需要 x 权限,才可以执行。 - 操作系统对用户分为三类:文件所有者、文件所属组、其他用户 上图中,第一行最左边的一段字符串 `drwxr-xr-x` 解释如下: ``` d 目录...
Output generation hooks 可以提供关于 bundle 和构建的信息。它们在 `bundle.generate(outputOptions)` 或 `bundle.write(outputOptions)`期间调用 [`outputOptions`](https://rollupjs.org/guide/en/#outputoptions)是第一个钩子,[`generateBundle`](https://rollupjs.org/guide/en/#generatebundle) 会在 `bundle.generate(...)` 生成成功后调用, [`writeBundle`](https://rollupjs.org/guide/en/#writebundle)会在`bundle.write(...)`写入成功后调用, [`renderError`](https://rollupjs.org/guide/en/#rendererror) 会在生成出错时调用。 用户调用 bundle.close() 时会触发 closeBundle 。
Node.js 中的 Buffer(缓冲区) 可以看作是一块内存空间。 - Buffer 是全局变量,直接就能使用。 - Buffer 是 C++ 申请的,不占用 v8 的堆内存大小,它无法调整大小,内存使用由 Node.js 控制,由 V8 的 GC 进行回收。 - Buffer 一般配合 Stream 使用,充当数据缓冲区。 - Buffer 可以理解为一个整数数组,每个数据是一个字节,用 16 进制表示(最大值是...