`
lgx2351
  • 浏览: 171447 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

js学习笔记1-对象和数组

阅读更多

1. 对象和数组
总述
对象和数组是JS里两种重要的数据类型,它们与普通的如字符串和数字等基本数据类型不同的是:它们不是表示单个值,而是表示值的集合。
对象是一组已命名的值的集合,而数组是一种特殊的对象,是一组数值的有序集合。
1.1创建对象
对象把多个数据值集合在一个单元中,并且允许用名字来存放和获取这些值。
对象定义一般如下:

var empty = {}
var point = {x:0,y:0}
var home = {
       “name”:”liugx”,
       “age”:29,
       “married”:false
       “email”:”liugx@sina.com”
}

 
以上写法我们在程序里常常用到,比如把函数的参数作为一个obj来传递;比如定义一个obj,赋上属性后,做为一个集合来使用;比如在客户端js里new一个img的ojb,赋值给它属性,如left,top,等,再appendchild到document中来显示;如常常在服务端封装成一个json,再在前台里把返回的字符串eval成obj,再通过属性来得到具体的值。。。。
在程序里,我们也常常用var o = new Object()来定义一个对象,再给这个o赋上相应的属性。这里的Object()是一个构造函数,就像我们常常在js里做如下定义:

function TrackRecordMgr(){}
TrackRecordMgr.prototype={
	doFun1:function(){
	},
	doFun2:function(){
	}
}

 
上面的TrackRecordMgr()就是我们自定义的构造函数,只是在写js时,我们常常忘记了面象对象的思想了。在js里内建的构造函数常用的还有:

var a = new Array();
var d = new Date();
var r = new RegExp();

 
1.2对象属性
对象属性主要掌握以下几个:
1、  对象的属性可以通过给它赋值的方法来创建。这点我们在程序里常常用到。创建了属性后就可以任意时刻改变属性的值。
2、  对象属性分为标识符与字符串两种写法的区别,理解这两种各用在哪些方面,特别是字符串数组的写法。
用数组表示法来访问对象的属性是很灵活的,为什么这么说呢?看下面的代码:

for(var i=0;i<5;i++){
	addresses = o[“addIndex”+i]+”,”
}

 
同时,我们在代码里常常把一个对象做为参数传递给另一个对象,另一个对象在需要遍历第一个对象的属性,把它加到自己身上。遍历的时候因为并无法知道第一个对象的所有属性名,所以只能通过数组写法来赋值:

for(var name in obj1){
	if(obj1.name){
		ojb2[name] = obj1[name];
	}
}

 
3、  对象的属性常常要遍历,无论是出于调试也好,还是出于取出对象的属性重新进行赋值也好。常用的语法是:

for(var name in obj){}

 
注意:遍历不分顺序;且只列出用户自定义的属性,而预定义的属性却不遍历。
另外,判断对象的属性是否存在:
if(o.dosomething) o.dosomething();(我们不用if(dosomethin in o))
4、  对象的一些固有的常用的属性。
Constructor属性(很重要,其实也很常用,用面象对象的思想来看待它):
       每一个对象都有constructor属性,它引用了对象的构造函数。
       如果new 一个Date(),则这个new的dateojb的constructor就是Date,如下;

       var dateobj = new Date();
       dateobj.constructor == Date;

 
       因为Constructor与构造函数相关联起来,所以Constructor常用来判断对象的类型:

if((typeof o ==”object”)&&(o.constructor==Date))

 
       我们常常不这样写,而用instanceof来替换Constructor:

       if((typeof o == “object”)&&(o instanceof Date))

 
toString属性
       toString属性我们常常用在调试。
1.3数组
我们在程序里要把数组与对象分开来用,但是其实typeof一个数组会发现数组其实也是一个对象,返回值是“object”。
创建数组我们程序里常用:

var = new Array();
var a = new Array(10);
var a = new Array(1,2,3,4,5);
var a =[];
var a=[1,2,3,4,5]

 
读写数组元素
读写数组元素很常用,就不说了。
常用的是遍历数组:

for(var i=0;i<a.length;i++){
              alert(a[i]);
}

 
数组的方法 
Join()方法
Sort()方法
       Sort()方法不需要自己去写,直接调用就可以了。
Slice()方法
       返回指定数组的一个片段,或者说是子数组。

Splice()方法
       插入或删除数组的通用方法。

       这里注意splice()方法返回的是删除后的数组,如果这个方法在一个循环体内,且循环的是这个数组,注意splice()方法后这个数组就变了,所以每次循环都要注意数组的值有没有发生变化。

Push()或pop()方法
       在数组的末尾插入或删除数组元素。很常用。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics