`
yyangbb
  • 浏览: 36558 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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

阅读更多

原文: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  
分享到:
评论

相关推荐

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

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

    面向对象JavaScript精要(英文原版pdf)

    #### 二、面向对象编程基础 面向对象编程(OOP)是一种软件开发方法,它通过将数据和处理这些数据的方法捆绑在一起形成“对象”来组织代码。这种编程方式使得代码更加模块化,易于管理和扩展。OOP的核心概念包括类、...

    javascript面向对象技术基础 整理排版了一下

    JavaScript 面向对象技术是编程中的核心概念,它允许我们以更加接近人类思维的方式组织代码,通过模拟现实世界中的对象来实现复杂的功能。本文将深入探讨JavaScript中的面向对象技术,包括对象、数组、函数、类、...

    JavaScript面向对象编程指南

    JavaScript面向对象编程指南

    JAVASCRIPT 面向对象编程精要

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

    JavaScript面向对象基础.ppt

    面向对象编程的基础包括类、对象、继承和多态等概念。类是对象的模板或蓝图,定义了一组属性(数据成员)和方法(函数)。对象则是类的实例,具备类所定义的属性和行为。JavaScript虽然没有传统的类定义,但可以通过...

    Javascript 面向对象的JavaScript进阶

    ### JavaScript面向对象进阶知识点详解 #### 8.1 面向对象编程的基本特性 在探讨面向对象的JavaScript之前,我们首先需要了解面向对象编程(Object-Oriented Programming, OOP)的基本特性:封装性、抽象性、继承...

    JavaScript面向对象编程指南.pdf

    JavaScript面向对象编程指南.pdf

    JavaScript面向对象编程指南(第2版).rar

    1. 基础对象创建和属性操作:理解如何创建对象,包括字面量语法和构造函数,以及访问和修改对象的属性。 2. 构造函数与原型链:详细解释构造函数的工作原理,以及如何利用原型实现继承。 3. `new` 关键字的作用:...

    JavaScript面向对象精要(英文版)

    #### 二、面向对象编程基础 面向对象编程(OOP)是一种编程范式,其核心思想是将数据和处理数据的方法绑定在一起,即封装为对象。在JavaScript中,虽然它不是一种传统的类(class-based)面向对象语言,但它通过...

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

    #### 二、面向对象的JavaScript基础 - **面向对象的概念**:面向对象编程(OOP)是一种编程范式,它使用“对象”来设计软件。在JavaScript中,对象是一组相关的属性和方法的集合。 - **JavaScript与OOP**:虽然...

    Javascript面向对象编程

    本文将详细介绍JavaScript中的面向对象编程概念和技术,包括类定义、对象创建、继承、封装等内容。 #### 二、类定义和对象创建 ##### 2.1 类定义 在JavaScript中,“类”这一概念并不像在Java或C#这样的强类型...

    javascript面向对象编程

    面向对象编程的基础知识及其在JavaScript中的运用;数据类型、操作符以及流程控制语句;函数、闭包、对象和原型等概念,以代码重用为目的的继承模式;BOM、DOM、浏览器事件、AJAX和JSON;如何实现JavaScript中缺失的...

    JavaScript面向对象编程指南 pdf

    面向对象编程(Object-Oriented Programming,OOP)是JavaScript中的一个重要概念,它允许开发者以更加模块化、可复用的方式组织代码。下面将详细探讨JavaScript面向对象编程的基本原理、特性以及实际应用。 1. **...

    javascript面向对象编程指南 2nd

    javascript面向对象编程指南 2nd英文版,英文名:Object-Oriented JavaScript。 What you will learn from this book The basics of object-oriented programming, and how to apply it in the JavaScript ...

    JavaScript面向对象编程指南完整版

    JavaScript面向对象编程指南是完整的扫描版...

    JavaScript面向对象编程指南 完整版

    JavaScript面向对象编程指南完整版是扫描的....

    javascript 面向对象基础

    在本文中,我们将深入探讨 JavaScript 的面向对象基础,主要包括类的定义、实例化以及对象属性和方法的引用。 首先,让我们了解如何在 JavaScript 中定义一个类。在 JavaScript 中,类通常通过函数来实现。例如,...

Global site tag (gtag.js) - Google Analytics