`
sbpya
  • 浏览: 615626 次
  • 性别: Icon_minigender_1
  • 来自: 杭州,长沙
社区版块
存档分类
最新评论

javascript实例教程(19) 数组

阅读更多

javascript实例教程(19) 数组

<!---->

在JavaScript 1.0中构造器只存在Date对象和用户定义的对象。你可能期望有个数组构造器,但是一直没能实现,直到JavaScript 1.1的出现,你的期望成为了现实。我们可以如下来定义用户对象:

function blankArray(n) {

for (var i=0; i < n; i++)

this[i] = null;

this.length = n;

}

blankArray函数创建了一个数组,这个数组中有n个空白项。下面再给出使用这个构造器的例子:

var myArray = new blankArray(3);

myArray[0] = "hello";

myArray[1] = "world";

myArray[2] = "!";

如果你对其它编程语言(如C语言)有些经验的话,你就会直到数组的索引是从0开始的而不是从1开始的。因此在上面的例子中数组索引是从0到2的,故这个数组的长度为3。

以下的代码是更为高级的数组构造器。它使用了'arguments'属性来对数组赋值而不只是创建一个空数组元素,这个属性对于所有的函数都是存在的。虽然没有给定任何的参数,传递的数值仍然可以通过arguments数组来进行访问。具体代码如下:

function makeArray() {

for (var i=0; i < arguments.length; i++)

this[i] = arguments[i];

this.length = arguments.length;

}

而构造器的调用可以是这样的:

var myArray = new makeArray("hello", "world", "!");

在JavaScript 1.1中,创建数组构造器结合了blankArray和makeArray的特定。如下的一个调用:

var myArray = new Array(3); // requires JS 1.1

这个调用创建了一个空白数组(其长度为3)作为上面示范的blankArray构造器。而在Netscape中称为'dense array',因为每一个元素都有一个数值,可以如下来创建:

var myArray = new Array(value1, value2, value3); // JS 1.1
既然你对构造器和对象属性比较熟悉了,我们可以进一步举些例子。如果你是使用JavaScript 1.1或者更高版本,你可以使用数组构造器。否则你使用makeArray对象更为合适些。 var workPeople = new Array(

new Person("Thomas", 25, "green"),

new Person("Richard", 35, "blue"),

new Person("Harold", 30, "chartreuse")

);

workPeople是一个拥有三个Person对象的数组。每一个Person都有name(名字)、age(年龄)、colour(肤色)以及birthYear(出生年份)属性。

以下再给出一个实例来使用我们上面所学到的。这里还要提醒一下,Person代码块和workPeople数组必须包括到相同的SCRIPT标签中或者网页的其它地方。

<SCRIPT language="JavaScript">

<!-- Hide from older browsers


function whoIsOldest(pArray) {

var pOldest = pArray[0]; // 数组中的第一个Person

for (var i=1; i < pArray.length; i++) // 对每个附加的Person循环

if (pArray[i].isOlder(pOldest)) // 如果它们比较老

pOldest = pArray[i]; // 将它们设置为最老

return pOldest;

}

var senior = whoIsOldest(workPeople);

document.write("The oldest person is " + senior.name + "<br>" + senior);


// Stop hiding -->

</SCRIPT>

上面例子的输出为:

The oldest person is Richard

Richard was born in 1963

and is 35 years old.

从whoIsOldest函数返回的数值是一个Person对象,它带有对象所有的属性和方法。这是为什么可以引用名字属性和变量printPerson()方法(称为senior)的原因。

WhoIsOldest函数的另外一些特性为:

a.处理任何的People的数组。

b.处理任何对象类型的数组,这个数组有一个isOlder()方法。

如果不是使用JavaScript,换成其它类型的编程语言,你就不得不指定函数输入是一个People的数组,而在JavaScript就不用了。这正是JavaScript的一个优点。 

分享到:
评论

相关推荐

    JavaScript实例教程源代码.rar

    以下是对21章JavaScript实例教程源代码的详细解读: 1. **变量与数据类型**:在JavaScript中,变量用于存储数据,可以使用var、let或const关键字声明。了解基本数据类型(如字符串、数字、布尔值、null、undefined...

    JavaScript动态网页设计经典实例教程

    在“JavaScript动态网页设计经典实例教程”中,你将深入学习如何利用JavaScript创建引人入胜的动态网页。教程强调了实践,每一个实例的代码都能够运行,确保你在学习理论知识的同时,也能掌握实际操作技巧。 一、...

    javascript高级教程.pdf

    第16 章 样式单实例 16.43 样式单的实用 16.44 样式单的定义 16.45 样式单的使用 第17 章 实用小程序 17.46 导 言 17.47 状态栏滚动信息 17.48 计算用户来访次数 17.49 散布页面的星星 17.50 永在顶端的图片 第18 章...

    javascript的一些实例

    最后,"16、19"可能是实例的编号,而"javascript"和"应用"则强调了这些例子都是关于JavaScript的实际应用。 通过这些实例,开发者不仅可以学习到JavaScript的基本语法,还能了解到如何将JavaScript应用于实际项目中...

    自学javascript教程(共24个ppt)

    19. **PPT19:浏览器兼容性** - 讨论不同浏览器对JavaScript特性的支持情况,以及如何解决兼容性问题。 20. **PPT20:Node.js基础** - 介绍Node.js环境,学习如何在服务器端使用JavaScript。 21. **PPT21:前端...

    Javascript高级教程

    ### JavaScript高级教程知识点总结 #### 第1章:JavaScript基础 - **关于JavaScript**:JavaScript是一种轻量级的、解释型的脚本语言,主要用于网页的交互性和动态效果的实现。它能够直接嵌入到HTML页面中,使得...

    javascript入门教程

    ### JavaScript入门教程知识点总结 #### 一、JavaScript基础 ##### 1.1 关于JavaScript - **定义**:JavaScript是一种轻量级的编程语言,主要应用于网页开发中,用来为网页添加交互性。 - **历史**:由Netscape...

    即用即查——JavaScript核心对象参考手册

    《即用即查——JavaScript核心对象参考手册》是一本非常实用的参考书,无论是作为日常工作的案头工具书,还是作为自学JavaScript的教程,都能为读者提供极大的帮助。通过本书的学习,读者不仅能掌握JavaScript的基础...

    每个JavaScript开发人员应该知道33个概念

    19. 箭头函数:简洁的函数定义方式,注意与常规函数this的差异。 20. 高阶函数:接受函数作为参数或返回函数的函数,如map、reduce等。 21. 解构赋值:可以从数组或对象中方便地提取值,赋给变量。 22. Symbol:...

    JavaScript经典正则表达式实战

    - MDN Web文档:JavaScript的官方教程提供了详细的正则表达式指南。 - "JavaScript高级程序设计"等书籍:深入讲解JavaScript的正则表达式用法。 - 在线实践平台:如RegExr或Regex101,提供实时反馈,便于学习和...

    JavaScript动态网站开发若干案例

    本文将基于"JavaScript动态网站开发若干案例"的主题,详细解析这些章节内容,以帮助初学者和进阶者深入理解JavaScript的基础实例。 首先,让我们从`readme.txt`开始。这个文件通常包含对整个压缩包的介绍或目录,...

    javaScripte光盘项目03

    这个"javaScripte光盘项目03"很可能是某个学习资源或教程的一部分,包含了一系列的源代码文件,用于帮助程序员深入理解和实践JavaScript编程。下面我们将深入探讨这些标签和文件名可能代表的JavaScript知识点。 ...

    js实例大全

    【JavaScript实例大全】集合了众多JavaScript的实用示例,涵盖了从基础到高级的各种技术,旨在为开发者提供一个全面的学习资源。这份资料包含了多种JavaScript特效、权威指南以及实用代码片段,对于提升JavaScript...

    javaScript从入门到精通

    1. 变量与数据类型:JavaScript支持基本数据类型(如字符串、数字、布尔值)和引用数据类型(如对象、数组)。变量声明使用`var`、`let`或`const`关键字,理解其作用域和生命周期至关重要。 2. 运算符:包括算术...

    JavaScript范例

    "JavaScript范例"这个主题,正如其标题所示,提供了一系列经典的JavaScript代码实例,旨在帮助开发者深入理解和掌握这门语言的核心概念。 描述中提到,这个资料是由明日科技编写的,涵盖了19个章节,而我们目前看到...

    javascript 源码

    在给定的“javascript 源码”压缩包中,包含了多个章节的源代码,可能是一个关于JavaScript编程的教程或者教材的各个部分。以下是这些章节可能涵盖的关键知识点: 1. **第7章**:在JavaScript中,这一章可能讲解了...

    (知识引用自)廖雪峰-JavaScript-Python-Git-教程-by-it-ebooks-_z-lib.org_1

    JavaScript教程: JavaScript是一种广泛用于网页和网络应用的脚本语言,它主要运行在浏览器环境中,也可以在服务器端通过Node.js平台进行开发。JavaScript的核心概念包括: 1. **基本语法**:JavaScript语法与C/...

    PHP100视频教程全集112集BT种子【PHP经典】

    PHP100视频教程19:PHP面向对象开发的学习(三) PHP100视频教程20:PHP面向对象开发的学习(四) PHP100视频教程21:PHP面向对象开发的学习(五) PHP100视频教程22:PHP面向对象开发的学习(六) PHP100视频...

Global site tag (gtag.js) - Google Analytics