




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Javascript学习第一季(4)上篇文章讲了js中的变量,表达式,和运算符 还有一些 js 语句.这章我们来探讨js中的对象和数组。 比较难哦。做好心里准备吧。 深呼吸。1 , for / in :一种遍历(枚举)对象属性的方法,可以循环我们呢事先不知道的属性。它可以枚举处用户定义的所有属性,但却不能枚举出某些预定义的属性和方法。不能枚举的属性通常是继承的属性删除一个对象的属性: delete book.width ;从对象中移除了属性,在删除之后,用for/in将不会枚举该属性,并且用width in book 也检测不到该属性。for/in 的另一个重要的用途就是跟关联数组一起使用:(如果忘记关联数组的定义,可以看前面的章节。)for(stoct in port ) value + = get_value(stoct) * portstoct ; 2 , 通用的Object属性和方法:1):constructor属性:每个对象都有这个属性,他引用了初始化这个对象的构造函数。比如: var d =new Date(); /使用Date()构造函数,创建一个对象 d; d.constructor =Date; /true /属性d.constructor引用 Date ;这个属性有助于确定一个对象的类型;比如:我们想确定一个值的类型是否是Date 类型:If(typeof o=”object” )& (o.constructor=Date) / 首先看是否是对象,然后看是否引用Date上面的代码也可以写成:If(typeof o=”object” )& (o instanceof Date) / instanceof 运算符 来检测o.constructor 属性的值。3 , toStirng()和toLocaleString()方法:1):toLocaleStirng() 返回对象的一个本地化字符串。toString和toLocaleString一般都返回相同,但在子类中,有点区别:比如:Array , Date和Number都定义了返回本地化的值的toLocaleString()方法.4 , hasOwnProperty()和propertyIsEnumerable()方法:1):hasOwnPropertyvar a = x : 1 , y : 2;var k =a.hasOwnProperty(x);alert(k) /truealert( Math.hasOwnProperty(z) );/falsealert( Math.hasOwnProperty(cos) );/true 注:Math,cos() : 以弧度为单位计算并返回指定角度的余弦值。propertyIsEnumerable()跟返回的结果跟hasOwnProperty()相同;4 ,isPrototypeOf()方法:如果方法所属的对象是参数的原型对象。var a = x : 1 , y : 2;var k1= Ototype.isPrototypeOf(a); / o.constructor = Objectvar k2= Ototype.isPrototypeOf(Function); / Function.constructor = Objectalert(k1) /truealert(k2) /true5,数组:1)创建数组:数组直接量:var es = ;复杂点 var es = 1, x:1 , y : 2 , 2, x:3 , y : 4 ;还有一种方式:使用Array() 构造函数: V1 : 无参数: var a = new Array();空数组,和 var a = 相等 ; V2 : 多个参数: var a = new Array( 1,2,3,”tt”) ; /可以看出直接量定义 简单些。 V3 : 1个数字参数: var a = new Array (3); 具有3个元素的数组,每个元素的值为 undefined ;6, 数组的下标(索引):大小 : 0 = 下标 2的32次方 1 ;如果不在范围内,js会讲它转换为一个字符串,作为对象属性的名称;而不是作为数组的下标;比如: a-1.2 = “test” ; / 等价于 a“-1.2” =”test” ;/代码解释: 创建一个名为 “-1.2”的属性,而不是定义一个 新的数组元素。7, 添加数组的内存使用: a10 = “test” ; /添加新的元素内存的使用:比如:a0 = “1” ;a10 =” 10” ;那么js值给下标为0 和10的元素分配内存,中间的9个元素不被分配;注:数组也可以添加到对象中;比如;var a = new Circle(1,2,3);a0= “test” ;这个例子定义了一个名为” 0 “的新对象属性。只将数组元素添加到一个对象中并不会使它成为数组。8, 删除数组:var a = 1,2; delete a0; alert(a0) /输出 undefined alert(a1) /输出 2由例子可以看出,delete删除其实没有真正删除,只不过把元素设置为undefined; 如果要真正删除,可以使用Array.shift(),等方法。比如:var a = 1,2; delete a0; alert(a0) /输出 undefined alert(a1) /输出 2 a.shift(); /删除数组的第一个元素 alert(a0) /输出 2 alert(length:+a.length); alert(a1) /输出 undefined ; 1已经被删除了,其实数组已经的长度只有 1 了;9,数组的length:a49 = “a”;/ 那么这个数组的长度是 50 ;length属性经常用于遍历数组元素;比如: var a = “a” , “b “ ,”c” ;for(var i = 0 ; i a.length ; i+)alert(ai);这个是在假定元素是连续的,如果不是这种情况:必须检测每个元素是否被定义 : 比如:for(var i = 0 ; i y ,那么第一个参数就排在第2个参数后,比如; 1111 ,222 - 1111-2220 - 则 222 , 1111另外注意下 字母排序:因为js是区分大小写,所以排序的时候,把字符统一成大写或者小写,再排序。4):concat() 方法:var a = 1,2,3; a= a.concat(4, 5,6,7); a=a.join(); /输出 1,2,3,4,5,6,7 alert(a)注意:如果是数组里面还有数组 ,就不能展开了。比如:var a = 1,2,3; a = a.concat(4,5,6,6,7); alert(a); /这个看不出来 a = a.join(|); alert(a); /分割后,注意有个逗号- var c = 1,2,3; var d =new Array(1,2,3);alert(c); /1,2,3alert(d); /1,2,3/之所以不输出Object ,是因为/数组是一个具有额外功能层的对象./我们记住他的特殊性。5):slice() 方法:返回数组某一个片段。跟字符串的substring方法类似。6):splice() 方法:首先他跟 slice 方法 只有一个字母的差别,不过用处完全不同。他可以用来删除。var a = 1,2,3; a = a.splice(0,2); alert(a); / 输出 1, 2 a = a.splice(1,2); alert(a); / 输出 2 。 如果是 a = a.splice(0 , 1) ; 输出 1 a = a.splice(1,2); alert(a); / 没有删除任何数组 , 输出 空 数组他也可以插入数组。具体方法: var array1 = new Array(1,2,3,4); array1.splice(1,0,5);/在 第2个元素后面,插入 5 ; 如果第2个参数为0,则不删除。 document.write(array1+); /输出 1, 5 ,2 ,3,4 array1.splice(2,3,7,8) / 删除 第3个的 元素后的 3个元素。也就是 第3个,第4个,第5个元素。然后在这个位置上插入7,8 document.write(array1);/输出 1, 5 ,7,8注意:和concat()不同,splice并不将他插入的参数展开。也就是如果插入一个数组,他就是插入数组本身,还不是数组的元素。而concat()插入数组的话,就会把数组展开,插入数组中的元素,不过当插入的数组里还有数组的时候,就不会展开了。7):push() 方法和pop()方法:push(): 将一个或者多个数组 附加到数组的尾部。pop() : 删除数组的最后一个元素。var array1 = new Array(1,2,3,4); array1.push(5); document.write(array1+); /输出 1, 2 ,3 ,4,5 array1.pop() document.write(array1);/输出 1, 2 ,3 ,48):unshift() 方法和shift ()方法:跟push和pop唱反调。unshift (): 将一个或者多个数组 附加到数组的头部。shift ():删除数组的第一个元素。数组的一些方法是比较多,看起来也比较烦。所以大家应该有点耐心。另外可以参考这篇文章;/article.asp?id=438总结:这章主要讲了对象和数组的一些方法。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 五谷面膜加盟合同协议书
- 成品配送合同协议书模板
- 协议书 合同封面图片
- 企业垃圾清运合同协议书
- 纺织品检验员证书的知识更新 试题及答案
- 合同协议书肾脏
- 2025年私人银行高端客户需求导向的服务模式创新报告
- 租田地合同协议书电子板
- 买卖船合同协议书怎么写
- 焊工外协协议书
- 旁站监理实施细则(完整版)
- 肿瘤化学治疗
- RMG88.62C2控制器报警显示及可能的故障原因 - 副本
- 学业水平考试复习高中语文文言文课本翻译
- 常用原料净料率参照表
- 第一章 混凝土拌合站组织机构框图及岗位职责
- 工作界面划分表
- 依爱EIN70型气体灭火控制系统安装使用说明书V141
- 指南预应力简支t形梁桥
- 我的自编科学书
- 湘教版八年级数学下册第3章《图形与坐标》复习
评论
0/150
提交评论