JavaScript 数据类型
分类
基本类型
基本类型又叫值类型。
- String
- Number
- boolean
- undefined
- null
对象类型
对象类型又叫引用类型。
- Object
- Function
- Array
任意对象都是Object类型。
Function是一种特别的对象。可以执行。
Array也是一种特别的对象。它的属性是数字下标属性。操作内部数据通过数值下标操作。内部数据是有序的。
判断
- typeof
- instanceof
- ===
typeof返回数据类型的字符串表达。typeof可以判断undefined,数值,字符串,布尔值,function。不能判断null与object, object与array。
=== 和 == 的区别:
=== 不会做数据转换。==会做数据转换。
可以使用===判断undefined和null。
undefined和null的区别:
undefined代表定义了未赋值。null定义了并赋值,只是值为null。
什么时候需要给变量赋值为null:
初始赋值为null的变量表明将来要被赋值为对象。确定为对象之后赋值。最后再赋值为null,释放变量所占的内存。有一种对象叫垃圾对象,即没有引用指向的对象。为了尽早的释放对象应当将其赋值为null。垃圾对象最终会被垃圾回收器回收。垃圾回收器在浏览器中。
严格区分变量类型和数据类型:
数据类型分为基本类型和变量类型。
变量类型分为基本类型和引用类型。
变量类型保存基本类型的数据或引用类型的地址值。
数据、变量、内存
数据:存储在内存中代表特定信息的事物。
变量:可变化的量。由变量名和变量值组成。每个变量都对应一块小内存。变量名用于查找对应的内存。
例如下面一段代码:
var age = 18
console.log(age)
首先找到age对应的标识的地址。找到之后读取内存的内部保存数据。变量值就是内存中保存的数值数据。
内存:内存条通电后产生的用于存储可存储数据的空间。该空间是临时的。
内存的产生与死亡:内存条(电路板)通电,产生内存空间,存储数据,处理数据,断电,内存空间和数据消失。
一块小内存有两块数据,一部分地址值,一部分内容值。
变量赋值的实质:将一个变量保存的内容拷贝到另一个变量中。
只有当变量为对象类型才会去读取地址值。内存有两种数据一种是基本数据,一种是地址值数据。
内存主要分为两类:栈和堆。栈空间中主要存储全局变量和局部变量。堆空间中主要存储对象。
js代码执行的过程:将js代码加载到内存中,之后编译,解析,执行。
数据的特点:
- 可传递
- 可运算
内存中所有操作的目标:数据
内存是用于存储数据的空间,是临时空间。变量是内存的标识。
javaScript函数结束后函数内部的局部变量会被自动释放,成为垃圾对象。
js函数传递变量参数时使用的是值传递。
JS引擎如何管理内存:
内存的生命周期
- 分配空间,得到内存空间的使用权。
- 存储数据。可以反复进行操作。
- 释放小内存空间。
释放内存
- 局部变量:函数执行结束自动释放。
- 对象:首先要成为垃圾对象,之后由垃圾回收器回收。
function fn(){
var b = {}
}
b所指向的对象是在后面某个时刻由垃圾回收器回收。