`

javascript面向对象技术基础(二)

阅读更多

数组
我们已经提到过,对象是无序数据的集合,而数组则是有序数据的集合,数组中的数据(元素)通过索引(从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一个.

Js代码 复制代码
  1. var array1 = [];  //创建空数组   
  2. var array2 = new Array();  //创建空数组   
  3. array1 = [1,"s",[3,4],{"name1":"NAME1"}]; //   
  4. alert(array1[2][1]);  //4   访问数组中的数组元素   
  5. alert(array1[3].name1); //NAME1 访问数组中的对象   
  6. alert(array1[8]);   //undefined   
  7. array2 = [,,];  //没有数值填入只有逗号,则对应索引处的元素为undefined   
  8. alert(array2.length); //3   
  9. alert(array2[1]);     //undefined  
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,看下面的例子.

Js代码 复制代码
  1. var array = new Array(10);   
  2. alert(array.length);   //10   
  3. alert(array[4]);       //undefined   
  4. array[100] = "100th";  //这个操作会改变数组的长度,同时将10-99索引对应的值设为undefined   
  5. alert(array.length);   //101   
  6. alert(array[87]);      //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.

Js代码 复制代码
  1. var array = new Array("n1","n2","n3","n4","n5");  //五个元素的数组   
  2. var astring = "";   
  3. for(var i=0; i<array.length; i++) {           //循环数组元素   
  4.     astring += array[i];   
  5. }   
  6. alert(astring);       //n1n2n3n4n5   
  7. delete array[3];                   //删除数组元素的值   
  8. alert(array.length + "_" + array[3])  //5_undefined   
  9.   
  10. array.length = 3;    //缩减数组的长度   
  11. alert(array[3]);     //undefined   
  12. array.length = 8;    //扩充数组的长度   
  13. alert(array[4]);     //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)来得到值.数组本身也是一个对象,所以对象属性的操作也完全适合于数组.

Js代码 复制代码
  1. var array = new Array("no1","no2");   
  2. array["po"] = "props1";   
  3. alert(array.length);   //2   
  4. //对于数组来说,array[0]同array["0"]效果是一样的(?不确定,测试时如此)   
  5. alert(array[0] + "_" + array["1"] + "_" + array.po);//no1_no2_props1  
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
 
分享到:
评论

相关推荐

    javascript面向对象技术基础

    JavaScript是一种广泛应用于...以上是JavaScript面向对象技术的一些基础知识。通过理解并熟练运用这些概念,开发者能够编写出更清晰、更易于维护的代码。对于JavaScript初学者来说,掌握这些基础是进阶学习的关键步骤。

    javascript 面向对象技术基础教程第1/2页

    JavaScript面向对象技术是该编程语言非常核心的一个部分,它允许开发者使用对象来组织代码,并模拟现实世界中的实体。在JavaScript中,几乎所有的东西都可以被视为对象,包括基本数据类型如数字和字符串。对象包含...

    [推荐]javascript 面向对象技术基础教程

    本文将深入浅出地讲解JavaScript中的面向对象技术基础,包括对象、数组、函数、类、构造函数以及原型等方面的知识。 首先,让我们来看看对象和数组。在JavaScript中,对象是键值对的集合,这些键通常是字符串,对应...

    JAVASCRIPT 面向对象编程精要

    本文介绍了JavaScript面向对象编程的基本概念和技术细节,包括变量和对象的基础用法、函数的作用以及如何通过封装和继承来构建复杂的对象层次结构。JavaScript的独特之处在于它的灵活性和动态性,这使得它成为了一种...

    JavaScript面向对象编程指南.pdf

    通过以上内容,我们可以了解到JavaScript面向对象编程的基础知识以及它的核心概念。在实际应用中,理解并熟练运用这些知识点,将有助于开发出更加结构化和可维护的代码。同时,参与Java学习群和听讲大神的课程将是一...

    javascript面向对象编程(中文).pdf

    ### JavaScript面向对象编程知识点概述 #### 一、现代JavaScript编程概览 - **JavaScript的演进**:自诞生以来,JavaScript经历了从一个简单的脚本语言到现今被广泛应用于构建复杂应用的强大编程语言的过程。它的...

    JavaScript面向对象技术实现树形控件

    JavaScript面向对象技术在实现树形控件中扮演着至关重要的角色。树形控件是一种用于展示层次型数据的用户界面元素,它具有扩展和折叠功能,可以在有限的空间内清晰地展示大量的信息,使得数据间的层级关系一目了然。...

    《JavaScript内核系列》和《JavaScript面向对象基础》

    二、JavaScript面向对象基础 JavaScript的面向对象编程主要基于原型(prototype)、构造函数和实例化。 1. 原型:JavaScript中的对象都有一个内置的__proto__属性,指向其构造函数的原型对象。通过原型链,对象可以...

    javascript 经典面向对象设计

    标题“JavaScript经典面向对象设计”指出了本书的主要内容是关于如何使用面向对象编程(OOP)原则和技术来编写高质量、可扩展且可重用的JavaScript应用程序及库。描述中提到本书相比其他中文资料更为清晰,深入到...

    JavaScript面向对象编程指南 第2版 高清 带索引书签目录_样章.pdf

    从所提供的文件信息中,我们可以总结以下几点与“JavaScript面向对象编程指南 第2版 高清 带索引书签目录_样章.pdf”相关的重要知识点。 首先,该文件提到的书籍是关于JavaScript面向对象编程的,面向对象编程...

    js面向对象技术基础

    JavaScript是一种基于原型的面向对象编程语言,它的面向对象技术基础包括对象、数组、原型、作用域、闭包以及模拟私有变量等核心概念。下面将详细介绍这些知识点。 **1. 对象与数组** 在JavaScript中,对象是键值...

    javascript面向对象特性代码实例

    在本篇文章中,作者详细阐述了JavaScript面向对象编程的几个关键特性,并通过代码示例展示了这些特性的具体应用。首先,我们来了解几个核心概念:类、静态成员、对象和重载。 类在面向对象编程中扮演着基础的角色,...

Global site tag (gtag.js) - Google Analytics