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()方法
在数组的末尾插入或删除数组元素。很常用。
分享到:
相关推荐
学习笔记HTML-css-JS.zip学习笔记HTML-css-JS.zip学习笔记HTML-css-JS.zip 学习笔记HTML-css-JS.zip学习笔记HTML-css-JS.zip学习笔记HTML-css-JS.zip 学习笔记HTML-css-JS.zip学习笔记HTML-css-JS.zip学习笔记...
zookeeper云的学习笔记-云的学习笔记系统-云的学习笔记系统源码-云的学习笔记管理系统-云的学习笔记管理系统java代码-云的学习笔记系统设计与实现-基于ssm的云的学习笔记系统-基于Web的云的学习笔记系统设计与实现-...
Python学习笔记--皮大庆,非常适合零基础入门。对应英文版本《How to think like a computer scientist》
云的学习笔记-云的学习笔记系统-云的学习笔记系统源码-云的学习笔记管理系统-云的学习笔记管理系统java代码-云的学习笔记系统设计与实现-基于ssm的云的学习笔记系统-基于Web的云的学习笔记系统设计与实现-云的学习...
LaTex教程--latex排版学习笔记---入门提高.pdf
JDBC学习笔记--JDBC学习笔记JDBC学习笔记--JDBC学习笔记JDBC学习笔记--JDBC学习笔记JDBC学习笔记--JDBC学习笔记
强烈推荐《How to think like a computer scientist》,对应中文版本《Python学习笔记--皮大庆》,非常适合零基础入门。
HTML CSS JS 学习、git-笔记HTML CSS JS 学习、git-笔记 HTML CSS JS 学习、git-笔记HTML CSS JS 学习、git-笔记 HTML CSS JS 学习、git-笔记HTML CSS JS 学习、git-笔记 HTML CSS JS 学习、git-笔记HTML CSS JS ...
CSL学习笔记--第二章 怎么应用CSL.docxCSL学习笔记--第二章 怎么应用CSL.docxCSL学习笔记--第二章 怎么应用CSL.docxCSL学习笔记--第二章 怎么应用CSL.docxCSL学习笔记--第二章 怎么应用CSL.docxCSL学习笔记--第二章 ...
VBA学习笔记系列----WorkBookworksheetsRange对象[汇编].pdf