《《JavaScript高级编程》学习笔记之高级编程》学习笔记之object和和array引用类型引用类型
本文给大家分享我的javascript高级编程学习笔记之object和array引用类型,涉及到javascript引用类型相关知识,大家一起看
看把。
1. Object类型类型
大多数引用类型值都是Object类型的实例;而且Object也是ECMAScript中使用最多的一个类型。
创建Object实例有如下两种方式:
new操作符后跟操作符后跟Object构造函数:构造函数:
var person=new Object( );
person.name="webb";
person.age=25;
对象字面量表示法:
var person={
name:"webb",
age:25
};
2. Array类型类型
除了Object之外,Array类型恐怕是ECMAScript中最常用的类型了。
ECMAScript数组的每一项可以保存任何类型的数据(例如,第一个位置可存放字符串,第二个位置保存数值,第三个位置
保存对象,以此类推)。而且ECMAScript数组的大小是可以动态调整的,即可以随着数据的添加自动增长以容纳新增数据。
创建数组的基本方式有两种,创建数组的基本方式有两种,
使用Array构造函数:
var colors=new Array( );
var colors=new Array(20); //也可设置length属性
var colors=new Array("red","blue","green"); //包含3个字符串的数组
var colors=Array(3); //可省略new操作符
数组字面量表示法
var colors=["red","blue","green"];
alert(colors[0]); //显示第一项
colors[2]="black"; //修改第三项
colors[3]="brown"; //新增第四项
注:数组的length属性很有特点——它不是只读的。因此通过设置这个属性,可以从数组的末尾移除或添加项。例如,
var colors=["red","blue","green"];
colors.length=2;
alert(colors[2]); //undefined
colors[colors.length]="black"; //在末尾添加项
2.1 检测数组检测数组
对于一个网页,或者一个全局作用域而言,使用instanceof操作符就能判断某个对象是不是数组:
if(value instanceof Array){
//对数组执行某些操作
}
instanceof操作符的问题在于,它假定只有一个全局执行环境。如果网页中包含多个框架,那实际上就存在两个以上不
同的全局执行环境,从而存在两个以上不同版本的Array构造函数。如果你从一个框架向另一个框架传入一个数组,那么传入
的数组与在第二个框架中原生创建的数组分别具有各自不同的构造函数。
为了解决这个问题,ECMAScript5新增了Array.isArray( )方法。这个方法的目的是最终确定某个值到底是不是数组,而
不管它是在哪个全局执行环境中创建的,
if(Array.isArray(value)){