跳到主要内容

谈谈计算机相关原理

内存机制​

对于前端来说,理解计算机原理的内存机制可以帮助前端应用项目的性能及优化

  • 内存管理
    • 处理变量的内存分配和释放
    • 合理使用变量作用域、垃圾回收等技术
    • 减少内存泄漏
  • 内存优化
    • 对于减少内存的占用,可以通过优化图片、减少全局变量、使用压缩和缓存
      • 优化图片可以减少页面加载时的内存占用
        • 全局变量存储在全局作用域中,在整个应用的都存在,占用内存空间是比较大的
  • 存储变量
    • 基本数据类型用 栈内存存储,引用数据类型用 堆内存存储
    • 闭包变量是存在堆内存中的
      • 因为函数内部的变量引用外部函数的作用域,当函数执行完之后,引用还存在

图片占据的内存​

图片在计算机中占据内存的大小取决于多个因素, 比如图片的格式、分辨率等等

  • 图片格式:图片格式比如有jpg、png,jpg是有损压缩的,png是无损压缩的,无损压缩是占更多的内存空间
  • 分辨率: 图片的分辨率越高,即像素数量越多,所占用的内存也就越大

计算机存储单位有字节(Byte,或B)、千字节(KB)、兆字节(MB)

0.1 + 0.2 != 0.3理解​

由于计算机无法对十进制进行运算 ,需要转换二进制,十进制小数0.1和0.2在转换二进制过程中出现无限循环,造成了精度丢失

理解进制​

JavaScript 中提供的进制表示方法有四种:十进制、二进制、十六进制、八进制。

  • 十进制(Decimal): 取值数字 0-9;不用前缀。
  • 二进制(Binary): 取值数字 0 和 1 ;前缀 0b 或 0B。
  • 十六进制(Hexadecimal): 取值数字 0-9 和 a-f ;前缀 0x 或 0X。
  • 八进制(Octal): 取值数字 0-7 ;前缀 0o 或 0O (ES6规定)。

数字是如何转二进制的?​

  • 小数转换成二进制小数采用" 乘2取整,顺序排列" 法
  • 十进制整数转换为二进制整数采用" 除2取余,逆序排列 "法

二进制是如何计算的?​

在二进制中,每个位(从右到左)代表一个2的幂,其指数与位数相同

如:10101110

  • 得到174,即十进制为174

二进制是如何存储的?​

在计算机内存中,每个二进制位都代表一个0或1,8位二进制称为一个字节

  • 整数和小数都可以使用二进制来表示。在计算机中,负数通常使用补码表示。补码是将数值取反并加上1得到的值。例如,-5的补码为11111011。

  • 计算机中,二进制数通常是以补码的形式存储的。