引用类型
定义
引用类型的值(即对象)是引用类型的一个实例。引 用类型有时候也被称为对象定义,因为它们描述的是一类对象所具有的属性和方法。
1、引用类型-Object
大多数引用类型值都是 Object 类型的实例;而且,Object 也是 ECMAScript 中使用多的一个类型。
// 创建 Object 实例的方式有两种。
// 1.使用 new 操作符后跟 Object 构造函数
var obj = new Object();
obj.name = "Tom";
obj.age = 20;
//2.用对象字面量表示法
var obj1 = {
name: "Tom",
age: 20
}
1、在通过对象字面量定义对象时,实际上不会调用 Object 构造函数
2、对象字面量是向函数传递大量可选参数的首选方式,这种传递参数的模式适合需要向函数传入大量可选参数的情形。一般来讲,命名参数虽然容易处理,但在有多个可选参数的情况下就会显示不够灵活。好的做法 是对那些必需值使用命名参数,而使用对象字面量来封装多个可选参数。
对象属性访问方法及方法的不同
- 点(.)
- 方括号[]
var person = new Object();
person.name = "Nicholas";
person["age"] = 29;
//方括号访问
console.log(person["name"]);//Nicholas
//.访问
console.log(person.age);//29
- 区别
方括号语法的主要优点是可以通过变量来访问属性,例如:
var propertyName = "name";
console.log(person[propertyName]); //"Nicholas"
如果属性名中包含会导致语法错误的字符,或者属性名使用的是关键字或保留字,也可以使用方括号表示法。例如:
person["first name"] = "Nicholas";
由于"first name"中包含一个空格,所以不能使用点表示法来访问它。然而,属性名中是可以包含非字母非数字的,这时候就可以使用方括号表示法来访问它们。
通常,除非必须使用变量来访问属性,否则我们建议使用点表示法。
2、Array
除了 Object 之外,Array 类应该是 ECMAScript中最常用的类型了。
- 特点:
ECMAScript 数组的每一项可以保存任何类型的数据。也就是说,可以用数组的第一个位置来保存字符串,用第二位置来保存数值,用第三个位置来保存对象, 以此类推。而且,ECMAScript 数组的大小是可以动态调整的,即可以随着数据的添加自动增长以容纳新增数据。
- 创建数组的基本方式:
//1.第一种是使用 Array 构造函数,
var colors = new Array();
//如果预先知道数组要保存的项目数量,也可以给构造函数传递该数量,而该数量会自动变成 length 属性的值。
var colors = new Array(20);
//也可以向Array 构造函数传递数组中应该包含的项。以下代码创建了一个包含3个字符串值的数组:
var colors = new Array("red", "blue", "green");
//另外,在使用 Array 构造函数时也可以省略 new 操作符。
var colors = Array(20); 创建一个包含 20 项的数组
//2.创建数组的第二种基本方式是使用数组字面量表示法。
//数组字面量由一对包含数组项的方括号表 示,多个数组项之间以逗号隔开,如下所示:
var colors = ["red", "blue", "green"]; // 创建一个包含 3 个字符串的数组
var names = []; // 创建一个空数组
1.与对象一样,在使用数组字面量表示法时,也不会调用 Array 构造函数.
2.数组的 length 属性很有特点——它不是只读的。因此,通过设置这个属性,可以从数组的末尾移 除项或向数组中添加新项。
- 检测数组
Array.isArray()
if (Array.isArray(value)){ //对数组执行某些操作 }
- 栈方法
栈是一种 LIFO(Last-In-First-Out, 后进先出)的数据结构,也就是新添加的项早被移除。而栈中项的插入(叫做推入)和移除(叫做 弹出),只发生在一个位置——栈的顶部。ECMAScript为数组专门提供了 push()和 pop()方法,以便 实现类似栈的行为。 push
- 队列方法
队列数据结构的访问规则是 FIFO(First-In-First-Out, 先进先出)。队列在列表的末端添加项,从列表的前端移除项。由于 push()是向数组末端添加项的方法, 因此要模拟队列只需一个从数组前端取得项的方法。实现这一操作的数组方法就是 shift(),它能够移除数组中的第一个项并返回该项,同时将数组长度减 1。结合使用 shift()和 push()方法,可以像使用队列一样使用数组。