引用类型的值是应用类型的的一个实例,对象是某个特定引用类型的实例。新对象是使用new操作符后跟一个构造函数创建的。例如:
var person=new Object()
1、关于Object类型
(1)关于Object类型的创建方式有两种。第一种使用new操作符后跟Object构造函数 。例如:
var person=new Object();
person.name="hello";
person.age=22;
第二种创建方式是使用对象字面量表示:
var person={
name:"hello",
age:22
};
访问对象属性可以用点表示法和方括号表示法 例如:var name=person.name 或者 var name=person["name"];
2、关于Array类型
Array数组的每一项都可以保存任何类型的数据,并且数组的大小是可以动态调整的,因为数组的length属性是可读可写的。
(1)关于数组的创建
var colors=new Array() 或者 指定长度 var colors=new Array(10);
var colors=new Array("red","green","pink");
数组的访问:var color=colors[2] 即会得到第三项的值 "pink"
数组的长度是可以变的,例如:
var colors=new Array("red","white","black");
colors[99]="gray";
alert(colors.length);//100
这个例子在数组的位置99插入了一个值,结果获得新的长度就是100,而从位置3到98的每一项,都将获得undefined值。
(2)转换方法
所有的对象都具有toLocaleString(),toString()和valueOf()方法,其中toString()方法和valueOf()方法返回的值相同。
colors.toString()方法和colors.valueOf()方法,返回数组的字符串的表示。
(3) 栈方法
栈是一种last-in-first-out后进先出的数据结构。
push方法可以接收任意数量的参数,并添加到数组的末尾,返回修改后数组的长度。
pop()方法则是从数组末尾移除最后一项,返回移除的项。
var colors=new Object("white");
var tempCount= colors.push("red","green","blue");
alert(tempCount);//3
var item=colos.pop();
alert(item);//blue
队列方法是一种first-in-first-out先进先出的数据结构。
shift()方法是移除数组的第一项并返回该项。
unshift()方法是在数组前端添加任意个项并返回新数组的长度。
(4)重排序方法
数组中已经存在两个可以直接用来排序的方法:reverse()和sort()方法。
reverse()方法是直接把数组反向输出、
sort()方法会调用每个数组项的toString()转型方法,比较的实际是字符串。
var values=[0,1,5,10,15];
alert(values.reverse());//15,10,5,1,0
alert(values.sort());//0,1,10,15,5
由于sort()比较的是字符串,所有时会出现意料之外的结果,很多情况下并不是最佳的方案。
因此sort()方法可以接收一个比较函数做为参数。
(5)操作方法
concat()方法可以基于当前的数组中的所有项创建一个新的数组。
slice()基于当前数组中的一项或者多项创建一个新的数组。
var colors=["red","green","blue"];
var colors2=colors.concat("yellow",["block","brown"]);
alert(colors2);
var colors3=colors.slice(1);//代表从位置1开始截取
var colors4=colors.slice(1,4);//代表从位置1开始截取一直位置4(不包括位置4)
splice()方法可以向数组中删除,插入,替换等操作
splice(0,2)会删除数组中的前两项。
splice(2,0,"red","green")会从当前数组的位置2开始插入字符串red和green
splice(2,1,"red","green")会删除当前数组位置2的项、然后再从位置2开始插入字符串red和green