zoukankan      html  css  js  c++  java
  • javascript数组浅谈1

       最近心血来潮要开始玩博客了,刚好也在看数组这块内容,第一篇就只好拿数组开刀了,自己总结的,有什么不对的地方还请批评指正,还有什么没写到的方面也可以提出来我进行完善,谢谢~~

       首先,大概说说数组的基本用法。

       数组,即Array类型,是开发中最常用的类型之一,javascript中的数组和其他语言最大的区别就是每一项可以保存任何类型的数据,而且数组的大小是可以动态调整的,有点绕?看看代码吧

       1.数组的创建:

    var arr=new Array(20);
    var arr1=["小伞",1,true,undefined,[2,"王"],""]

    第一行用数组构造法创建了一个length值为20的数组,第二行用数组字面量表示法创建了一个多种数据类型并存的数组。

    第一行的方法有点小坑,括号里指定的是数组的长度,而不是数组第一个元素是20 ,要想创建有一个元素是20的这么一个数组,还是用字面量法创建吧。

    还有一个小坑,看代码

    var arr=[1,2,];
    var arr1=[,,,,,]

    第一行这句会在IE8以及之前版本中创建一个值分别为1,2,undefined的数组,其他浏览器会产生一个两项分别是1,2的数组

    第二行同样的可能会在不同浏览器上包含5项或者6项。(IE9以上修复了这个问题,但还是不推荐这种写法)

       2.数组元素的基本操作

    js的数组非常的灵活,拥有很多数组元素操作的方法,但也有一些小坑,比如:

    var arr=[];
    arr[0]=1;arr[1]=2;arr.push(3);  //arr=[1,2,3]
    arr[arr.length]=4; //arr=[1,2,3,4]
    arr.unshift(0); //arr=[0,1,2,3,4];
    delect arr[2]; //arr=[0,1,undefined,3,4]
    arr[0]=undefined //arr=[undefined,1,undefined,3,4]

    push()方法会给数组最后边添加一个元素,得到的值可以看注释,^_^

    也可以直接手动在数组下标拓展以为,如第三行,其实就相当于push(4);

    那如果想在数组元素最前边添加呢,别急,有unshift()方法。

    与此对应的有删除元素的pop()方法和shift()方法,分别和push(),unshift()对应,就不再赘述了。

    delect 运算符对数组的操作不会删除掉数组的元素,可以说是用undefined来占个位子,和直接赋值是一样的。

       3.稀疏数组

    稀疏数组是指数组的下标并不是从0开始,一般数组的长度要比元素的个数要多:

    var arr1=[undefined];
    var arr2=new Array(1);
    
    0 in arr1;        //true
    0 in arr2;        //false
    
    var arr3=new Array(100);
    arr3[99]="赋值";
    
    99 in arr3;        //true
    98 in arr3;        //false

    arr1中是因为数组第1列是有值的,虽然是undefined,arr2只是指定了数组长度,第1列还是没有值,所以用in语句会返回false。arr3中给第第100个元素赋值后检测是有值的,对其他列的key是没有影响的,所以还是返回了false。

      下次来写数组的一些操作方法。

       javascript数组浅谈2 http://www.cnblogs.com/wangxiaosan/p/5504687.html


  • 相关阅读:
    分页SQL 和Oracle 存储过程
    什么是SilverLight
    opendpi 源码分析(一)
    Multiway arrays
    循环链表
    轮询算法 这是一个印度人写的,学习下。 来自 codeproject
    Friday the Thirteenth
    通过命令行指定监听的IP和端口
    pthread_key_t
    贝叶斯网络 未学习前数据结构
  • 原文地址:https://www.cnblogs.com/wangxiaosan/p/5501908.html
Copyright © 2011-2022 走看看