文章目录
- 一、简单数据类型
- 1、简单数据类型简介
- 2、简单数据类型 null 空类型的特殊性
- 二、复杂数据类型
- 三、堆内存和栈内存
一、简单数据类型
1、简单数据类型简介
JavaScript 中 , " 简单数据类型 “ 又称为 ” 基本数据类型 " 或 " 值类型 " , 与 简单数据类型 相对的 " 复杂数据类型 “ 又称为 ” 引用类型 " ;
简单数据类型 在 内存中存储时 , 存储的是 数据值 本身 ;
如 : 存储 number 数字类型的值 888 , 在内存中存储的就是值 888 ;
简单数据类型包括 :
- string 字符串类型
- number 数字类型
- boolean 布尔类型
- undefined 未定义类型
- null 空类型
2、简单数据类型 null 空类型的特殊性
null 空类型 比较特殊 , 使用 typeof 运算符获取 null 类型变量的类型时 , 返回的是 object 类型 , 也就是说这是一个 " 空对象 " ;
null 空类型使用场景 : null 空类型 是一个 object 类型 , 可以理解为 " 空对象 " ;
如果定义一个变量 , 想要存储一个对象 , 但是此时对象没有进行赋值 , 可以先赋值为 null 值 ;
代码示例如下 :
代码语言:javascript复制 // 空类型变量
var nullVar = null;
// 输出 : object
console.log(typeof nullVar);
完整代码 :
代码语言:javascript复制<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<!-- 设置 meta 视口标签 -->
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no,maximum-scale=1.0,minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>JavaScript</title>
<style></style>
<script>
// 空类型变量
var nullVar = null;
// 输出 : object
console.log(typeof nullVar);
</script>
</head>
<body>
</body>
</html>
二、复杂数据类型
复杂数据类型 又称为 引用数据类型 ;
复杂数据类型 在内存中存储时 , 在 栈内存 中 存储的是 堆内存中的地址 , 在 堆内存 中 存储的是 复杂数据类型 的 数据内容 ;
栈内存中存储的地址 指向 堆内存中的数据 ;
复杂数据类型 都是 通过 new 关键字创建的对象 , 这个对象既包括 JavaScript 提供的内置对象 , 也包括用户自己自定义的对象 ;
三、堆内存和栈内存
栈内存 Stack 和 堆内存 Heap 是 内存管理 的 两种主要方式 ;
栈内存 由 操作系统 进行管理 , 自动进行 内存分配 和 内存释放 ;
函数的 参数值 / 局部变量 等值 , 存储到 栈内存中 ;
简单数据类型 的 值 , 直接存储到 栈内存 中 ;
堆内存 由 开发者 手动进行 内存分配 和 内存释放 ;
在高级语言中 , 开发者不进行手动释放 , 由 垃圾回收机制 完成堆内存的回收 ;
复杂数据类型 的 值 , 存储到 堆内存中 , 存储复杂数据类型后 对应的 堆内存的地址 存储到 栈内存 中 ;