javaScript--数组基础

数组不过是一个具有额外功能层的对象,
用typeof运行符时返回"object"
数组的额外功能是javaScript1.1中引入的
javaScript是无类型语言 一个数组元素可以具有任意数据类型 
同一个数组的不同元素可以具有不同的类型 甚至包含其他数组
1.创建数组
  调用Array()或创建数组直接量
    三种方式调用Array():
 (1)无参调用:                      var a = new Array();     创建无元素的空数组
    (2)指定数组前n个元素值:var a = new Array(5,"testing, testing");
    (3)指定数组长度:              var a = new Array(10);    每个元素值均为undefined
                                     ( 在NetScape的客户端JavaScript中, 如果<script>标记的language性质被显示地设置
                                       为"JavaScript1.2", 则Array()构造函数默认为创建length为1的数组, 并将元素初始化为
                                       构造函数的参数, 这与ECMAScript标准不同)
  创建数组直接量
  var a = [2, true, 4.78, "Tianjin University"];
     还可以包含对象直接量或其他数组直接量
  var a = [[2, true, 4.78, "String"], [2, {x:3, y:4}]];
2.数组元素的读写
  value = a[0];
  a[1] = 3.14;
  a[i] = "Tianjin Unversity";
  a[i+1] = 3;
  a[a[i]] = a[0];
  运算符[ ] 还可用来存取已命名对象的属性:my[' salary '] * =2;
  对象与数组的本质是相同的 
  数组index值须 (>=0) && (<2的32次方-1) && (整数)
  若index (数字太大) || (负数) || (float) || (bolean) || (object) || (others), JavaScript会将之转换为字符串, 用生成
      的字符串作为对象属性的名字 而非数组index a[ -1.23 ] = true; 创建了一个attrbute 名为"-1.23"
3.添加数组新元素
  JavaScript数组中可以具有任意个数的element 可以在任何时刻改变element个数
  添加新元素 只需赋值:a[10] = 10;
  JavaScript数组是稀疏的 index不一定要落在连续范围内 只有真正存储在数组中的element才能分配到内存
    a[0] = 1;
    a[1000] = "Tianjin University"; 只有index为0及1000的element才可分配到内存 其他999个未分配
  Array element也可以添加到Object中:
 var c = new Circle(1,2,3);
    c[0] = "This is an array element of an object";
    定义了名为"0"的Object对象属性 只将Array Element添加到Object中不会使其成为Array
    由Array() || 由Array直接量创建的Array具有一些Object没有的特性
4.Array的Length:自动更新
   var a = new Array();             // a.length = 0   ==>未定义Array element
   var a = new Array(10);        // a.length = 10 ==>将0-9的Element定义为空元素
   var a = new Array(1,2,3);     // a.length = 3  ==>定义0-2的element
   var a = [4,5];                          // a.length = 2   ==>定义element0, element1
   a[5] = "Tianjin University";  //a.length = 6    ==> 定义element0, element1, element5
   a[49] = 0;                               //a.length = 50  ==> 定义element0, element1, element5, element50
   length常用来遍历array element
   var university = ["Tianjin unversity", "Tianjin", "1895/10/02"];
   for( i=0; i<= university.length; i++ )
   {
        if (university[i] != undefined) //若Array是连续的, 且是从element0开始
        {
            alert(university[i]);
        }
   }
   Array的length既可以读也可以写
  若给length设置了一个比它当前值小的值 array将会被截断
     此长度之外的元素均会被抛弃 它们的值也就丢失了
  若给length设置了一个比它当前值大的值 则新的 未定义的元素就会被添加到数组末尾 以使其增长到指定length
 
  通过设置Array length的Attrbute来截断数组是惟一一种缩短数组长度的方法
  若用delete来删除Array中的element 虽然那个元素变成未定义的 但数组的length不会改变
5.多维数组
  JavaScript不支持真正的多维数组 但可以使用element为array的array
  matrix是一个element为array的array 其每个element matrix[x]均是一个array
  要取此array中的一个值 就要写成matrix[x][y]
数组的(length attrbute)&&(array class定义的各种methods)是数组区别于对象的重要特性
  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章