关于javascript的引用类型

引用类型的值是应用类型的的一个实例,对象是某个特定引用类型的实例。新对象是使用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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值