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 解析。

 

posted @   唯一念  阅读(8)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示