JavaScript深入之引用类型
基本类型
JavaScript 变量可以用来保存两种类型的值:基本类型值和引用类型值。基本类型值指的是 简单的数据段,包括以下 6 种基本数据类型:Undefined、Null、Boolean、Number 、 String 和 Symbol。
基本类型保存在栈中,存储的是具体的值,是轻量级的数据存储方式。
引用类型
引用类型的值是保存在内存中的对象。与其他语言不同,JavaScript 不允许直接访问内存中的位置, 也就是说不能直接操作对象的内存空间。在操作对象时,实际上是在操作对象的引用而不是实际的对象。 为此,引用类型的值是按引用访问的。
Object 类型
Object 是一个基础类型,其他所有类型都从 Object 继承了基本的行为。
创建 Object 实例的方式有两种。第一种是使用 new 操作符后跟 Object 构造函数,另一种方式是使用对象字面量表示法。
1 | // new操作符创建对象 |
Array 对象
除了 Object 之外,Array 类型恐怕是 ECMAScript 中最常用的类型了。而且,ECMAScript 中 的数组与其他多数语言中的数组有着相当大的区别。
- ECMAScript 数组的每一项可以保存任何类型的数据。
- ECMAScript 数组的大小是可以动态调整的,即可以随着数据的添加自动增长以容 纳新增数据。
方法:
Array.from()
从类数组对象或者可迭代对象中创建一个新的数组实例。Array.isArray()
用来判断某个变量是否是一个数组对象。Array.of()
根据一组参数来创建新的数组实例,支持任意的参数数量和类型。
数组实例的常用方法:
方法名称 | 说明 |
---|---|
concat | 用于连接两个或更多的数组并返回结果,arr1.concat(arr2) |
join | 把数组的所有元素放入一个字符串,元素通过制定的分隔符进行分离 arr1.join(‘,’) |
pop | 删除并返回数组中的最后一个元素 arr1.pop() |
push | 向数组的末尾添加一个或更多元素,并返回新的长度 arr1.push(1) |
reverse | 颠倒数组中的元素顺序,arr1.reverse() |
shift | 删除并返回数组中的第一个元素 arr1.shift() |
slice | 从某个已有的数组返回指定的元素 |
sort | 对数组的元素进行排序 arr1.sort() |
splice | 删除元素,并向数组中添加新元素 |
toString | 把数组转成字符串 arr1.toString() |
toLocaleString | 把数组转换为本地字符串 arr1.toLocaleString() |
valueOf | 返回数组对象的原始值 |
Date 对象
创建 Date 实例用来处理日期和时间。Date 对象基于 1970 年 1 月 1 日(世界标准时间)起的毫秒数。
1 | var today = new Date(); |
方法
- Date.now()
返回自 1970-1-1 00:00:00 UTC (世界标准时间)至今所经过的毫秒数。 - Date.parse()
解析一个表示日期的字符串,并返回从 1970-1-1 00:00:00 所经过的毫秒数。 - Date.UTC()
接受和构造函数最长形式的参数相同的参数(从 2 到 7),并返回从 1970-01-01 00:00:00 UTC 开始所经过的毫秒数。
RegExp 类型
类型是 ECMAScript 支持正则表达式的一个接口,提供了最基本的和一些高级的正则表 达式功能。
1 | var regex1 = /\w+/; |
Function 类型
Function 构造函数 创建一个新的 Function 对象。 在 JavaScript 中, 每个函数实际上都是一个 Function 对象。
1 | var sum = new Function('a', 'b', 'return a + b'); |