JavaScript 基础深入——数据、变量、内存
栏目: JavaScript · 发布时间: 5年前
JavaScript 基础深入——数据、变量、内存
什么是数据?
- 存储在内存中代表特定信息的,本质上是0100101.....
- 数据的特点:可传递、可运算
- 一切皆数据
-
内存中所有操作的目标:数据
- 算术运算
- 逻辑运算
- 赋值运算
- 运行函数
什么是内存?
- 内存条通电后产生的可储存数据的空间(临时的)
- 内存的产生和死亡:内存条(电路板)==>通电==>产生内存空间==>存储数据==>处理数据==>断电==>内存空间和数据都消失
-
一块小内存的2个数据:
- 内部存储的数据
- 地址值
-
内存分类:
- 栈:全局变量 / 局部变量
- 堆:对象
什么是变量?
-
可变化的量:变量名和变量值组成
- 变量名
- 变量值
-
每个变量都对应一块小内存:
- 变量名:用来查找对应的内存,
- 变量值:就是内存中保存的数据
内存、数据、变量三者之间的关系
- 内存是用来存储数据的空间
- 变量是内存的标识
关于引用变量赋值的问题
- 2 个引用变量指向同一个对象,通过一个变量修改对象内部数据,另一个变量看到的就是修改后的数据。
- 2 个引用变量指向同一个对象,让其中一个引用变量指向另一个对象,另一个变量依然指向前一个对象。
几个易错问题
问题1
var a = xxx
, a 内存中到底保存的是什么?
- xxx 是基本数据,a 内存中保存的就是这个数据
- xxx 是对象,a 内存中保存的是对象的地址值
- xxx 是一个变量,保存 xxx 的内存内容(可能是基本数据,也可能是地址值)
问题2
在 js
调用函数时传递变量参数时,是值传递还是引用传递?
- 理解1:都是值(基本值/地址值)传递
- 理解2:可能是值传递,也可能是引用传递(地址值)
问题3
js
引擎如何管理内存?
-
内存生命周期
- 分配小内存空间,得到它的使用权
- 存储数据,可以反复进行操作
- 释放小内存空间
-
释放内存
- 局部变量:函数执行完自动释放
- 对象:成为垃圾对象==>垃圾回收器回收
var a = 3 var obj = {} obj = undefined function fn () { var b = {} } fn() // b是自动释放, b所指向的对象是在后面的某个时刻由垃圾回收器回收
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 刨根问底:深入研究 JavaScript 全局变量
- Objective-C Runtime:深入理解成员变量与属性
- 深入理解Python[3] 当我们在讨论变量时,我们在讨论什么
- 【进阶1-2期】JavaScript深入之执行上下文栈和变量对象
- 全局变量,静态全局变量,局部变量,静态局部变量
- python变量与变量作用域
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Java Web开发实战经典(基础篇)
李兴华、王月清 / 清华大学出版社 / 2010-8 / 69.80元
本书用通俗易懂的语言和丰富多彩的实例,通过对Ajax、JavaScript、HTML等Web系统开发技术基础知识的讲解,并结合MVC设计模式的理念,详细讲述了使用JSP及Struts框架进行Web系统开发的相关技术。 全书分4部分共17章,内容包括Java Web开发简介,HTML、JavaScript简介,XML简介,Tomcat服务器的安装及配置,JSP基础语法,JSP内置对象,Java......一起来看看 《Java Web开发实战经典(基础篇)》 这本书的介绍吧!
XML、JSON 在线转换
在线XML、JSON转换工具
XML 在线格式化
在线 XML 格式化压缩工具