JavaScript学习笔记
Object类型
-
创建Object类型实例
创建 Object 实例的方式有两种。第一种是使用 new 操作符后跟 Object 构造函数,如下所示:
另一种方式是使用对象字面量表示法。对象字面量是对象定义的一种简写形式,目的在于简化创建var person = new Object(); person.name="dachuiwang"; person.nickname="diaosi";
包含大量属性的对象的过程,如下所示:var person = { name:"dachuiwang", nickname:"diaosi" }
-
访问对象属性
一般来说,访问对象属性时使用的都是点表示法,这也是很多面向对象语言中通用的语法。不过,在 JavaScript中也可以使用方括号表示法来访问对象的属性。在使用方括号语法时,应该将要访问的属性以字符串的形式放在方括号中,如下面的例子所示。
从功能上看,这两种访问对象属性的方法没有任何区别。但方括号语法的主要优点是可以通过变量alert(person["name"]); //"dachuiwang" alert(person.name); //"dachuiwang"
来访问属性,例如:
如果属性名中包含会导致语法错误的字符,或者属性名使用的是关键字或保留字,也可以使用方括var propertyName = "name"; alert(person[propertyName]); //"dachuiwang"
号表示法。例如:
由于"first name"中包含一个空格,所以不能使用点表示法来访问它。然而,属性名中是可以包person["first name"] = "dachuiwang";
含非字母非数字的,这时候就可以使用方括号表示法来访问它们。
通常,除非必须使用变量来访问属性,否则我们建议使用点表示法。
Array类型
-
创建Array类型实例
创建数组的基本方式有两种。第一种是使用 Array 构造函数,如下面的代码所示。
如果预先知道数组要保存的项目数量,也可以给构造函数传递该数量,而该数量会自动变成 lengthvar colors = new Array();
属性的值。例如,下面的代码将创建 length 值为 20 的数组。
也可以向 Array 构造函数传递数组中应该包含的项。以下代码创建了一个包含 3 个字符串值的数组:var colors = new Array(20);
第二种当然是字面量表示法啦var colors = new Array("red", "blue", "green");
array.length可以查看数组长度,当然也可以利用它来添加数组项,例如:var colors = ["red", "blue", "green"];//创建一个包含三个字符串的数组 var names = [];//创建一个空数组 var values = [1,2,];//不要这样写,这样会创建一个2或3项的数组
皮一点的话var colors = ["red", "blue", "green"]; colors[3] = ["yellow"]; colors[4] = ["pink"]; alert(colors.length);//5
不过这样3~98都是不存在的,都是undefinedcolors[99] = ["black"]; alert(colors.length);//100
-
栈方法
栈是一种 LIFO(Last-In-First-Out,
后进先出)的数据结构,也就是最新添加的项最早被移除。而栈中项的插入(叫做推入)和移除(叫做
弹出),只发生在一个位置——栈的顶部。ECMAScript 为数组专门提供了 push()和 pop()方法,以便
实现类似栈的行为。var colors = new Array();//创建一个数组 var count = colors.push("red","green"); // 推入两项 alert(count); //2 count = colors.push("black"); // 推入另一项 alert(count); //3 var item = colors.pop(); // 取得最后一项 alert(item); //"black" alert(colors.length); //2
-
队列方法
栈数据结构的访问规则是 LIFO(后进先出),而队列数据结构的访问规则是 FIFO(First-In-First-Out,
先进先出)。队列在列表的末端添加项,从列表的前端移除项。由于 push()是向数组末端添加项的方法,
因此要模拟队列只需一个从数组前端取得项的方法。实现这一操作的数组方法就是 shift(),它能够移
除数组中的第一个项并返回该项,同时将数组长度减 1。结合使用 shift()和 push()方法,可以像使
用队列一样使用数组。
ECMAScript 还为数组提供了一个 unshift()方法。顾名思义,unshift()与 shift()的用途相反:var colors = new Array(); //创建一个数组 var count = colors.push("red", "green"); //推入两项 alert(count); //2 count = colors.push("black"); //推入另一项 alert(count); //3 var item = colors.shift(); //取得第一项 alert(item); //"red" alert(colors.length); //2
它能在数组前端添加任意个项并返回新数组的长度。因此,同时使用 unshift()和 pop()方法,可以
从相反的方向来模拟队列,即在数组的前端添加项,从数组末端移除项,如下面的例子所示。var colors = new Array(); //创建一个数组 var count = colors.unshift("red", "green"); //推入两项 alert(count); //2 var item = colors.pop(); //取得最后一项 alert(item); //"green" alert(colors.length); //2