`
q272156430
  • 浏览: 270561 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

javaScript 面象对象2

阅读更多

数组
我们已经提到过,对象是无序数据的集合,而数组则是有序数据的集合,数组中的数据(元素)通过索引(从0开始)来访问,数组中的数据可以是任何的数据类型.数组本身仍旧是对象,但是由于数组的很多特性,通常情况下把数组和对象区别开来分别对待(Throughout this book, objects and arrays are often treated as distinct datatypes.This is a useful and reasonable simplification; you can treat objects and arrays as separate types for most of your JavaScript programming.To fully understand the behavior of objects and arrays, however, you have to know the truth: an array is nothing more than an object with a thin layer of extra functionality. You can see this with the typeof operator: applied to an array value, it returns
the string "object".  --section7.5).
创建数组可以用"[]"操作符,或者是用Array()构造函数来new一个.

var array1 = [];  //创建空数组   
var array2 = new Array();  //创建空数组   
array1 = [1,"s",[3,4],{"name1":"NAME1"}]; //   
alert(array1[2][1]);  //4   访问数组中的数组元素   
alert(array1[3].name1); //NAME1 访问数组中的对象   
alert(array1[8]);   //undefined   
array2 = [,,];  //没有数值填入只有逗号,则对应索引处的元素为undefined   
alert(array2.length); //3   
alert(array2[1]);     //undefined  

 

 用new Array()来创建数组时,可以指定一个默认的大小,其中的值此时为undefined,以后可以再给他们赋值.但是由于javascript中的数组的长度是可以任意改变的,同时数组中的内容也是可以任意改变的,因此这个初始化的长度实际上对数组没有任何的约束力.对于一个数组,如果对超过它最大长度的索引赋值,则会改变数组的长度,同时会对没有赋值的索引处赋值undefined,看下面的例子.

var array = new Array(10);   
alert(array.length);   //10   
alert(array[4]);       //undefined   
array[100] = "100th";  //这个操作会改变数组的长度,同时将10-99索引对应的值设为undefined   
alert(array.length);   //101   
alert(array[87]);      //undefined  

 

可以用delete操作符删除数组的元素,注意这个删除仅仅是将数组在该位置的元素设为undefined,数组的长度并没有改变.我们已经使用过了数组的length属性,length属性是一个可以读/写的属性,也就是说我们可以通过改变数组的length属性来任意的改变数组的长度.如果将length设为小于数组长度的值,则原数组中索引大于length-1的值都会被删除.如果length的值大于原始数组的长度,则在它们之间的值设为undefined.

var array = new Array("n1","n2","n3","n4","n5");  //五个元素的数组   
var astring = "";   
for(var i=0; i<array.length; i++) {           //循环数组元素   
    astring += array[i];   
}   
alert(astring);       //n1n2n3n4n5   
delete array[3];                   //删除数组元素的值   
alert(array.length + "_" + array[3])  //5_undefined   
  
array.length = 3;    //缩减数组的长度   
alert(array[3]);     //undefined   
array.length = 8;    //扩充数组的长度   
alert(array[4]);     //undefined  

 

 对于数组的其他方法诸如join/reverse等等,在这就不再一一举例.

通过上面的解释,我们已经知道,对象的属性值是通过属性的名字(字符串类型)来获取,而数组的元素是通过索引(整数型 0~~2**32-1)来得到值.数组本身也是一个对象,所以对象属性的操作也完全适合于数组.

var array = new Array("no1","no2");   
array["po"] = "props1";   
alert(array.length);   //2   
//对于数组来说,array[0]同array["0"]效果是一样的(?不确定,测试时如此)   
alert(array[0] + "_" + array["1"] + "_" + array.po);//no1_no2_props1  

 可以把 array["po"]换成array["2"]或者array[2],还有array.po换成array.“2”和array.2,会发现很多的秘密。对数组是特殊的对象有更进一步的理解。

分享到:
评论

相关推荐

    javascript面象对象编程

    一、支持基础 面向对象思想中,最核心的概念之一是类。 类:对一组属性及方法的集合。 二、函数 函数定义方法 函数声明后加括号 – 创建完成后立即调用执行 ...2. 公有成员,私有成员,静态成员 3. 类的继承

    Javascript面象对象成员、共享成员变量实验

    Javascript 面象对象成员、共享成员变量实验,需要的朋友可以参考下。

    JavaScript面象对象设计

    新一篇: JavaScript中字符串相等比较 面象对象的应用是相当广泛的,在桌面编程中很早就出现了,应用比较成熟,象C++,Java,C#等。而在Web编程这一块,出现就要晚得多,以致于现在的Web开发很困难,当然也有Web开发...

    经典Javacript的面向对象设计例子

    javascript面象对象设计经典例子

    HTMLTest(js面向对象)

    HTMLTest(js面向对象),javascript也有面象对象的概念,有封装,有继承。事件模型

    js面向对象.pdf

    JavaScript 面向对象程序设计,最基础的介绍如何 创建对象, 继承,重原理上分析js,由浅入深,讲解的很清晰明白,希望能给大家的学习带来帮助

    Jquery UI插件

    如果你想学习javascript面象对象编程,这个源代码可以让你学习学习。

    成都盛课盟IT培训:高级网页设计.

    5、javaScript面象对象程序设计  javaScript面向对象基础、认识函数、类的实现……. 6、框架编程、使用正则表达式、使用Windows document 7、项目实战  架构完成电信网络娱乐平台、OA系统、分布式系统页面设计 8...

    理解Javascript

    01_理解内存分配在正式开始之前,我想先说两句,理解javascript系列博文是通过带领大家分析javascript执行时的内存分配情况,来解释javascript原理,具体会涵盖javascript预加载,闭包原理,面象对象,执行模型,...

    现代 javscript 编程

    这包括专业JavaScript编程的基础:编写面象对代码,测试代码,为分发而进行封装。随后你看到了Unobtrusive DOM脚本编程的主要方面,包括一个关于文档对象模型,事件,JavaScript与CSS交互的简短的总览。最后你看到了...

    理解Javascript_01_理解内存分配原理分析

    在正式开始之前,我想先说两句,理解javascript系列博文是通过带领大家分析javascript执行时的内存分配情况,来解释javascript原理,具体会涵盖javascript预加载,闭包原理,面象对象,执行模型,对象模型...,文章的...

    理解Javascript_05_原型继承原理

    prototype与[[prototype]] 在有面象对象基础的前提下,来看一段代码: 代码如下: //Animal构造函数 function Animal(name){ this.name = name; } //Animal原型对象 Animal.prototype = { id:”Animal”, sleep:...

    Pky文章管理系统 Ver 2.0

    2、优化程序结构,全面采用面象对象编辑,业务处理与界面显示插件化; 3、加强数据安全性; 4、后台管理增加数量重新统计功能; 5、后台管理增加系统参数修改功能; 6、全新的安装向导; 7、后台管理增加PTB...

    华报智能报表工具

    开发人员既可以像设计Form那样灵活地摆放报表对象并设置他们的属性,也可以象使用Excel那样编辑不规则的表格。 提供了丰富的报表对象帮助您组合成任意复杂的报表样式。 采用“即点即输”的方式进行报表对象的文本...

    asp.net知识库

    与DotNet数据对象结合的自定义数据对象设计 (一) 数据对象与DataRow ASP.NET中大结果集的分页[翻译] .net 2.0 访问Oracle --与Sql Server的差异,注意事项,常见异常 Ado.net 与NHibernate的关系? 动态创建数据库...

Global site tag (gtag.js) - Google Analytics