zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    window 7 安装Jmeter并配置https录制脚本
    windows 7安装Fiddler抓HTTPS请求的解决办法
    APP界面设计与页面布局的23条基本原则
    Charles 连接手机抓包出现Unknown,一直无法抓包的问题解决
    Charles 如何破解与连接手机进行抓包
    WeTest----如何查看Wetest生成测试报告?
    WeTest----如何使用WeTest进行App性能测试?
    兼容位图
    DeleteDC ReleaseDC DeleteObject之间的区别
    屏幕保存为位图
  • 原文地址:https://www.cnblogs.com/danghuijian/p/4400821.html
Copyright © 2011-2022 走看看