zoukankan      html  css  js  c++  java
  • 创建数组方法、数组元素的读和写

    一、创建数组的两种方法

      1.使用直接量创建数组:

        1).在方括号中将组组元素用逗号隔开即可.

        2).数组直接量中的值不一定是要常量,它们可以是任意的表达式

        3).它可以包含对象直接量或其他数组直接量

             4).如果省略数组直接量中的某个值,省略的值的元素将被赋予undefined;  

       1).
      var
    empty = []; var primes = [2, 3, 5, 7, 11]; var misc = [1.1, true, "a", ];//三个不同类型的元素和结尾的逗号,不建议
      2).
      var base = 1024;
    var table = [base, base + 1, base + 2, base + 3];
      3).
      var b = [[1,{x:1,y:2}],[2,{x:3,y:4}]];
      4).
      var count = [1, , 3]; //数组中有三个元素,第二个值为undefined
      var undefs = [, , ]; //两个元素,都是undefined

      2.调用构造函数Array()创建数组:

        1).调用时没有参数,该方法创建一个没有任何元素的空数组,等于数组直接量[].

        2).调用时有一个值是参数,它指定长度。

             3).显式指定两个或多个数组元素或者数组的一个非数组元素

       1).
    var
    a =new Array();//调用时没有参数
      2).
      var a = new Array(10);//该方法创建指定长度的数组,当预先知道所需元素的个数时,这种形式的Array()构造函数可以用来分配一个数组空间。注意,数组中没有存储值。甚至数组的索引,“0”,“1”等还未定义。
      3).
    var a = new Array(5, 4, 3, 2, 1, "testing,testing");//用这种形式,构造的函数参数将会成为新的数组元素,使用数组字面量比这样使用Array()构造函数要简单多了。

    、数组元素的读和写

     1.数组元素的读和写

      1).使用[]操作符来访问数组中的一个元素。

           2).数组的引用位于方括号的左边,方括号中是一个返回非负整数值的任意表达式,使用该表达式可以读也可以写数组中的一个元素。

      var a = ["world"]; //从一个元素的数组开始
      var value = a[0]; //读取第0个元素
          a[1] = 3.14; //写第1个元素
      var i = 2;
          a[i] = 3; //写第2个元素
          a[i + 1] = "hello"; //写第3个元素
          a[a[i]] = a[0] //读取第0和第2个元素,写第3个元素
    

       2.特别注意:

        1).数组的特别之处在于,当使用小于2的32次方的非负数整数作为属性名时,数组会自动维护其length属性值。如上,创建仅有一个元素的数组,然后在1、2、3、处进行赋值,当我们这么做时,数组的length变为4

      2).数组的索引 和 数组的属性名:

       所有的索引都是其属性名,但只有0到(2的32次方-2)的整数属性名才是索引。

             所有的数组都是对象,可以为其创建任意名字的属性。但如果使用的属性是数组的索引,数组的特殊行为就是将根据需要更新它们的length属性值。

      3).可以使用负数或非整数来索引数组。

       这种情况下,数值转换为字符串,字符串作为属性名来用。既然名字不是非负整数,就只能当做常规的对象属性,而非数组的所有,数组不会自动维护其length属性值

         同样,使用是非负整数的字符串,它就当做数组索引,而非对象的属性。当使用一个浮点数和一个整数相等时情况也是一样的:   

      a[-1.23] = true; //这将创建一个名为"-1.23"的属性
      a["1000"] = 0; //这是数组的第1001个元素
      a[1.000] //和a[1]相等

         4).javascript数组索引 仅仅是对象属性名的一种特殊类型,这意味着javascript数组没有“越界”错误的概念。

       当试图查询对象中不存在的属性时,不会报错。只会得到undefined值。类似于对象,对于对象同样存在这种情况。

             既然数组是对象 ,那么它们可以从原型中继承元素:在ECMAScript5中,数组可以定义元素的getter和setter方法。

         如果一个数组确实继承了元素或使用了元素的getter和setter方法,你应该期望它使用非优化的代码路径:访问这种数组的元素的时间会与常规对象属性的查找时间相近。

  • 相关阅读:
    Dev 之 GridControl 列表 显示底部(包括底部统计)
    DEV 之 有些控件不允许拖动。
    Split 之特殊用法
    WebSerivce与WebAPI的区别
    DevExpress的DateEdit设置显示日期和时间
    indexOf 和 lastIndexOf的区别
    DevExpress GridControl使用教程:之 添加 checkbox 复选框
    APP通用测试用例大全
    Windows下搭建easyMock
    Centos8搭建Easy-Mock详细步骤
  • 原文地址:https://www.cnblogs.com/hanxuming/p/6475103.html
Copyright © 2011-2022 走看看