专业做国际网站自适应网站开发教程
目录
- JavaScript有哪些数据类型,它们的区别?
 - 数据类型
 - 区别
 
JavaScript有哪些数据类型,它们的区别?
数据类型
JavaScript数据类型有: Undefined、Null、Boolean、Number、String、Array、Object、Symbol、BigInt…
- String(字符串): 表示文本数据,使用单引号或双引号包裹。
 
let myString = 'Hello, World!'
 
- Number(数字): 表示数值,可以是整数或浮点数。
 
let myNumber = 42
 
- Boolean(布尔): 表示逻辑值,可以是 
true或false. 
let isTrue = true
 
- Undefined(未定义): 表示未赋值或不存在的值.
 
let myUndefined
 
- Null(空值): 表示空值或没有对象值.
 
let myNull = null
 
- Symbol(符号): 引入于ES6,表示唯一的、不可变的值.
 
let mySymbol = Symbol('unique')
 
- BigInt(大整数): 引入于ES2020,表示任意精度的整数.
 
let bigIntNumber = 123n
 
- Object(对象): 表示复杂数据结构,可以包含属性和方法.
 
let myObject = { key: 'value', number: 42 }
 
- Array(数组): 一种有序的集合,用于存储一组相关的数据。它可以包含各种类型的元素,包括数字、字符串、对象等。
 
let myArray = [1, 'Hello', { key: 'value' }, true]
 
新增类型:
-  
Symbol(符号): 代表创建后独一无二且不可变的数据类型,用于解决可能出现的全局变量冲突问题。
 -  
BigInt(大整数): 是一种数字类型的数据,可以表示任意精度格式的整数,用于安全地存储和操作大整数,即使超出了 Number 能够表示的安全整数范围。
 
数据类型分类:
-  
原始数据类型(栈中存储):
- Undefined、Null、Boolean、Number、String。
 - 直接存储在栈中的简单数据段,占据空间小、大小固定,适合存储频繁使用的数据。
 
 -  
引用数据类型(堆中存储):
- Object、Array、Symbol、BigInt。
 - 存储在堆中的对象,占据空间大、大小不固定。在栈中存储了指向堆中实体的指针,解释器通过指针检索引用值。
 
 
堆和栈的概念:
-  
数据结构中的栈和堆:
- 栈中数据的存取方式为先进后出。
 - 堆是一个优先队列,按优先级进行排序,优先级可以按照大小规定。
 
 -  
操作系统中的栈和堆:
- 栈区内存由编译器自动分配释放,存放函数的参数值、局部变量的值等,操作方式类似于数据结构中的栈。
 - 堆区内存一般由开发者分配释放,如果开发者不释放,可能由垃圾回收机制回收。
 
 
这些数据类型在JavaScript中被广泛使用,可以根据需要选择合适的数据类型来存储和处理数据。注意,JavaScript是一种动态类型的语言,变量的数据类型可以在运行时改变。
区别
-  
存储位置:
- 基本数据类型: 存储在栈中的简单数据段,占据空间小、大小固定。
 - 复杂数据类型: 存储在堆中的对象,占据空间大、大小不固定。在栈中存储了指向堆中实体的指针,解释器通过指针检索引用值。
 
 -  
变量赋值:
- 基本数据类型: 通过值进行赋值,变量直接存储数据的值。
 - 复杂数据类型: 存储在堆中,变量存储的是对象的引用,即地址。
 
 -  
复制行为:
- 基本数据类型: 拷贝的是实际的值,互不影响。
 - 复杂数据类型: 拷贝的是引用,指向同一对象,一个对象的改变会影响另一个对象。
 
 -  
比较行为:
- 基本数据类型: 比较的是值是否相等。
 - 复杂数据类型: 比较的是引用是否相同,即是否指向同一对象。
 
 -  
传递方式:
- 基本数据类型: 通过值传递。
 - 复杂数据类型: 通过引用传递。
 
 
这些区别影响了变量在内存中的存储和操作方式,了解这些特性有助于更好地理解JavaScript中的数据类型。
持续学习总结记录中,回顾一下上面的内容:
JavaScript数据类型有: Undefined、Null、Boolean、Number、String、Array、Object、Symbol、BigInt…
