JavaScript 笔记 (一)
一、进程是什么?线程是什么?
1. 进程是 cpu 最小的资源分配单位;(是能拥有资源和独立运行的最小单位)
2. 线程是 cpu 最小的调度单位;(线程是建立在进程的基础上的一次程序运行单位,一个进程中可以有多个线程)
二、内存泄漏
1. 定义:指程序中已动态分配的堆内存由于某种原因导致内存未释放或无法释放的情况。
2. 造成的结果:
2.1 造成内存浪费;
2.2 导致程序运行速度减慢甚至系统崩溃。
3. 内存生命周期:
3.1 分配期;
3.2 使用期;
3.3 释放期。(内存泄漏发生在这个周期,内存未释放导致的)
4. 可能导致内存泄漏的原因:
4.1 意外的全局变量;
4.2 闭包;
4.3 忘记清除的定时器或事件监听;
4.4 DOM元素已清除,但仍然存在对 DOM 元素的引用。
5. 避免造成内存泄漏的方法:
5.1 变量先声明再使用;
5.2 减少使用闭包;
5.3 注意清除定时器和事件监听;
5.4 减少对 DOM 元素的引用。
三、作用域
1. 定义:规定变量和函数的可使用范围称为作用域;
2. 查找变量或者函数时,需要从局部作用域到全局作用域依次查找,这些作用域的集合称作用域链;
3. 分类:
3.1 全局作用域;
3.2 局部作用域。(又分为函数作用域和块级作用域)
四、preload、prefetch、dns-prefetch、preconnect。(link 元素中 rel 属性的值)
1. preload:标识该引用资源会在当前页面使用,优先加载;
2. prefetch:标识该引用资源会在未来的页面使用,空闲时加载;
3. dns-prefetch:标识该引用资源所在的 dns(域名)会被预查询;
4. preconnect:dns 预连接。(通常搭配 dns-prefetch 使用)
五、script 中的 defer 和 async 属性
1. 普 通 情 况:解析 HTML 的时候,遇到 script 标签时,暂停 HTML 解析,下载 js 文件,js下载完毕,js 文件运行,js文件 运行完毕,继续 HTML 解析;
2. 含有 defer 属性:解析 HTML 的时候,遇到 script 标签时,边解析 HTML,边下载 js 文件,js 文件下载完毕,等待 HTML 解析完成之后再执行 js 文件;
3. 含有 async 属性:解析 HTML 的时候,遇到 script 标签时,边解析 HTML,边下载 js 文件,js 文件下载完毕,暂停 HTML 解析,运行 js 文件,js运行完毕,继续 HTML 解析。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通