数据-内存-变量

今天小编主要是对数据,内存,变量这几个概念进行说明。内容是我最近所学到的,希望能跟大家分享下,若理解有误,还请各位指教一二。

什么是数据

  • 存储在内存中代表特定的信息的东西,本质上是一串二进制组成的,如01110011....
  • 数据的特点是:可传递(var a=2;var b=a;)、可运算
  • 万物皆数据,函数也是数据
  • 内存中所有操作的目标:数据(如能进行算术、逻辑、赋值、运行函数)

什么是内存

  • 内存条通电后产生的可储存数据的空间(临时的)
    注:内存空间是临时的,而硬盘空间是持久的
  • 内存产生和死亡:内存条(电路版型)=>通电=>产生内存空间=>储存数据=>断电=>内存和数据消失
  • 内存的分类
    (1)栈:全局变量/局部变量
    (2)堆:对象
  • 一块小内存的2个数据:地址值+内部储存的数据

什么是变量

  • 可变化的量,有变量名和变量值组成(例 var a=1)
  • 每个变量都对应一块小内存,变量名用来查找对应的内存,变量的值就是内存中保存的数据

变量,数据,内存三者的关系

  1. 内存是用来存储数据的空间
  2. 变量是内存的标识

问题:var a=xxx,a内存中保存的是什么??

(1)当xxx是基本的数据,保存的就是这个数据

(2) 当xxx是对象,保存的是这个对象的地址值

关于引用变量赋值的问题

(1) n个引用变量指向同一个对象,其中一个变量修改对象的内容,其他变量看到的是改变后的数据

(2)2个n个引用变量指向同一个对象,让其中一个变量指向另外一个对象,另外一个引用变量依旧指向前一个对象

js调用函数是传递变量的参数时,是值传递还是引用传递??

理解1:都是值传递(基本数据/地址值)传递
理解2:可能是值传递,也可能是引用传递

Js引擎如何管理内存

1)内存生命周期

  • 分配小内存,得到它的使用权
  • 存储数据,可以反复进行操作
  • 释放小内存空间

2)释放内存

  • 局部变量:函数执行完立即释放
  • 对象:成为垃圾对象=>垃圾回收器回收

猜你喜欢

转载自www.cnblogs.com/Jeanchjy/p/13378457.html