前言
ts 中的值分为原始值 和引用值两种类型。
- 原始值
在 TypeScript 中,原始值是指最基本的数据类型,也就是 Boolean、Number、String 和 Nullish。这些数据类型是不可变的,它们的值在被创建之后就不能再次被改变。在 TypeScript 中,原始值通常用于表示简单的值,例如布尔值、数字、字符串和空值。使用原始值可以提高代码的可读性和可维护性,因为它们很容易理解和处理。同时,原始值还可以用作其他复杂数据类型的基础,例如对象和数组。 原始值是最简单的数据 - 引用值
在 TypeScript 中,引用值是指指向存储在内存中的对象的引用,而不是对象本身。当您将一个对象分配给另一个变量时,它们实际上共享相同的对象引用,而不是创建一个新的对象。这意味着,如果您更改其中一个对象的属性,则另一个对象的属性也会随之更改,因为它们引用相同的对象。引用值与基本值不同,基本值是直接存储在变量中的值,如数字、字符串和布尔值。
值的复制
对于原始值,赋值时会在栈中 产生一个 副本;因此赋值的值和原来的值之间没有任何联系,他们位于不同的栈区;当你修改变量的时候,不会影响之前的变量;
对于引用值,值赋值时会赋予变量对象的引用,而不是对象本身。因此当你修改的时候,也会影响之前的变量
引用类型分类
复合引用类型
包括数组、元组、函数、对象、类的实例
数组
语法:
let 变量名:类型[]
或者
let 变量名:Array<类型>
属性
- 长度 (length):获取数组的长度
方法
- toString()
- join(‘分隔符’)
- push():在数组结尾添加新元素
- unshift():在数组开头添加新元素
- pop():移除数组的最后一个元素
- shift():移除数组的首个元素
- indexOf():搜索元素值并返回其索引位置
- lastIndexOf():从后往前搜索元素值并返回其索引位置
- findIndex(自定义筛选函数)
- sort()
- reverse():反转元素
- splice(开始位置,删除的元素个数,并添加哪些新元素)
- concat(另个数组变量)
- slice():从指定位置开始,裁剪之后的元素,并返回
- reduce():从左到右遍历每个元素
- reduceRight():从右到左遍历每个元素
元组
语法:
let 变量名:[类型1,类型2,...,类型n]=[值1,值2,...,值n]
内置引用类型
包括日期对象、正则表达式、数学对象等