Object类型
Object类型是JavaScript中使用最多的一种类型。虽然Object的实例不具备多少功能,但对于在应用程序中存储和传输数据而言,它确实是非常理想的选择。
创建Object实例的方式有两种,第一种是使用new操作符后跟Object构造函数。
复制代码 代码如下:
var person = new Object();
person.name = "tt";
person.age = 12;
另一种方式是使用对象字面量表示法。
复制代码 代码如下:
var person = {
name : 'tt',
age : 12
}
另外,使用对象字面量语法时,如果留空其花括号,则可以定义值包含默认属性和方法的对象。
var person = {}; //与new Object()相同
person.name = "tt";
person.age = 12;
虽然可以使用前面介绍的任何一种方法来定义对象,但开发人员更青睐第二种方法(对象字面量语法),因为这种语法要求的代码量少,而且能给人封装数据的感觉。实际上,对象字面量也是向函数传递大量可选参数的首选方式,例如:
复制代码 代码如下:
function showInfo(args)
{
if(args.name != undefined)
{
alert(args.name);
}
if(args.age != undefined)
{
alert(args.age);
}
}
showInfo({
name:'name',
age:12
});
showInfo({name:'name'});
一般来说,访问对象属性时使用的都是点表示法,这也是很多面向对象语言中通用的语法。不过,在JavaScript也可以使用方括号表示法来访问对象的属性。例如:
复制代码 代码如下:
alert(person.name);
alert(person['name']);
从功能上看,这两种访问对象属性的方法没有任何区别。但方括号语法的主要优点是可以通过变量来访问属性。
复制代码 代码如下:
var propertyName = 'name';
alert(person[propertyName]);
通常,除非必须使用变量来访问属性,否则我们建议使用点表示法。
Array类型
JavaScript中的数组与其他多数语言中的数组有着相当大的区别。虽然JavaScript数组与其他语言中的数组都是数据的有序列表,但与其他语言不同的是,JavaScript数组的每一项可以保持任何类型的数据。也就是说,可以用数组的第一个位置来保存字符串,用第二个位置来保存数值,用第三个位置来保存对象。而且,JavaScript数组的大小是可以动态调整的,即可以随着数据的添加自动增长以容纳新增数据。
创建数组的基本方式有两种。第一种是使用Array构造函数。
复制代码 代码如下:
var colors1 = new Array();
var colors2 = new Array(20);
var colors3 = new Array('red','blue','yellow');
创建数组的第二种基本方式是使用数组字面量表示法。
复制代码 代码如下:
var colors1 = [];
var colors2 = ['red','blue','yellow'];
在读取和设置数组的值时,要使用方括号并提供相应值的基于0的数字索引。
复制代码 代码如下:
var colors = ['red','blue','yellow']; //定义一个字符串数组
alert(colors[0]); //显示第一项
colors[2] = 'green'; //修改第三项
colors[3] = 'black'; //新增第四项
数组的长度保存在其length属性中,这个属性始终会返回0或更大的值。
复制代码 代码如下:
var colors = ['red','blue','yellow'];
var names = [];
alert(colors.length); //3
alert(names.length); //0
数组的length属性很有特点——它不是只读的。因此,通过设置这个属性,可以从数组的末尾移除项或想数组中添加新项。
复制代码 代码如下:
var colors = ['red','blue','yellow'];
colors.length = 2;
alert(colors[2]); //undefined
这个例子中的数组colors一开始有3个值。将其length属性设置为2会移除最后一项,结果再访问colors[2]就会显示undefined了。
利用length属性也可以方便地在数组末尾添加新项。
复制代码 代码如下:
var colors = ['red','blue','yellow'];
colors[colors.length] = 'green'; //在位置3添加一种颜色
colors[colors.length] = 'black'; //再在位置4添加一种颜色
由于数组最后一项的索引始终是length-1,因此下一个新项的位置就是length。
转换方法
所有对象都具有toLocaleString()、toString()和valueOf()方法。其中,调用数组的toString()和valueOf()方法会返回相同的值,即由数组中每个值的字符串形成拼接而成的一个以逗号分隔的字符串。实际上,为了创建这个字符串会调用数组每一项的toString()方法。
复制代码 代码如下: