引用类型
var person = new Object();
person.name = "Nico";
person.age = "82";
(二)使用对象字面量表示法
var person = {
name:"nico",
age:82
};
在使用对象字面量语法时,属性名也可以使用字符串。如下:
var person = {
"name":"Nico",
"age":82,
5:true
};
另使用对象字面量语法时,如果留空花括号,则可以定义只包含默认属性和方法的对象。如下:
var person = {}; //同new Object()相同,不会调用Object构造函数(ff 2及之前版本会调用)
person.name = "Nico";
person.age = 82;
Arrray类型
var colors = ["red","blue","green"];//创建一个包含3个字符的字符串的数组
var names = []; //创建一个空数组
var values = [1,2];//不要这样,会创建一个包含2或3项的数组
与对象一样,在使用数组字面量表示法时,也不会调用Array构造函数(ff3及更早版本除外)。
var colors = new Array();//创建一个数组
var count = colors.push("red","blue");//推入两项
alert(count);//2
count = colors.push("black");//推入另一项
alert(count);//3
var item = colors.pop();
alert(item);//"black"
alert(colors.length);//2
队列方法
var colors = new Array();//创建一个数组
var count = colors.push("red","blue");//推入两项
count = colors.push("black");//推入另一项
alert(count);//3
var item = colors.shift();//取得第一项
alert(item);//"red"
alert(colors.length);//2
ECMAScript还为数组提供了一个unshift()方法,它能在数组前端添加任意个项并返回新数组的长度,因此,可以使用unshift()和pop()的方法从相反的方向来模拟队列,即在数组的前端添加项,从数组末端移除项。如下:
var colors = new Array();//创建一个数组
var count = colors.unshift("red","blue");//推入两项
alert(count);//2
count = colors.unshift("black");//推入另一项
alert(count);
var item = colors.pop();
alert(item);
alert(colors.length);
总结:pop()方法是从数组末尾移除并返回该移除的值,push()方法添加数据到数组末尾,并且返回修改后的长度。shift()方法移除数组第一项并返回该移除的项,unshift()方法添加数组第一项数据并返回修改后的长度。
var values = [0,1,5,10];
values.sort();
alert(values);//0,1,10,5
sort()方法根据测试字符串的结果改变原来的顺序。因为数值5虽然小于10,但在进行字符串比较时,"10"则位于"5"的前面,于是就被修改了。因此,sort()可以接收一个比较函数作为参数(只能是函数,可选)。 参数函数一般会有两个参数,用于传递数组中的元素,并用于排序规则操作,如果返回值大于零,则两个值互换,否则不互换。以下是个简单的比较函数:
function compare(value1,value2){
if(value1 < value2)
{
return -1;
}else if(value1 > value2)
{
return 1;
}else{
return 0;
}
}
对于数值类型或者 valueOf()方法返回数值类型的对象类型,可以使用简单的比较函数。如下:
function compare(value1,value2)//升序
{
return value2 - value1;
}