zoukankan      html  css  js  c++  java
  • 数组的相关知识

    javascript中的数组是无类型的,也就是说数组元素可以是任意类型,并且同一个数组中的不同元素也可能有不同类型。数组元素甚至可以是对象或其他数组,这样可以利用数组创建复杂的数据结构,如对象的数组和数组的数组。

    下面从头开始看javascript数组有什么特点:

    var array1=[1,,2];//数组有3个元素,中间的那个元素值为undefined
    var array2=[,,];//数组有2个元素,都是undefined

    因为数组直接量的语法允许有可选的结尾的逗号,所以只有2个元素而不是三个。

    创建数组的几种方式:

    1、数组字面量方法

    var array=[1,,2];

    这种形式就是数组字面量法。一般是使用这种方法创建数组。

    2、构造函数法

    1 // 调用时没有参数
    2 var array=new Array();
    3 // 该方法创建一个没有任何元素的空数组,等同于数组字面量[]
    4 // 调用时有一个数组参数,指定长度
    5 var array=new Array(10);
    6 // 此时数组中没有存储任何值,没有存储任何值,没有存储任何值,连索引也没有
    7 // 还可以这样创建
    8 var array=new Array(1,2,3,4);
    9 // 同数组字面量方法一样,但没有数组字面量方法简单

    javascript中有一种特殊的数组叫稀疏数组。

    稀疏数组就是包含从0开始的不连续索引的数组。通俗点说就是本来数组中连续的索引都有值,但是稀疏的某个索引上可能没有值,造成了数组中实际存储的元素个数<length-1;

    注意:

    在数组字面量中省略值时不会创建稀疏数组,因为省略的值为undefined。

    关于数组长度length一些值得注意的地方:

    1、如果为一个元素赋值,它的索引 i 大于或等于现有数组的长度时,length属性的值将设置为 i+1;

    2、设置Length的属性为一个小于当前长度的非负整数 n 时,当前数组中那些索引大于或等于n 的元素将从中删除;

    1 a=[1,2,3,4,5];
    2 a.length=3;//1,2,3
    3 a.length=0;//什么都没有了
    4 a.length=6;//1,2,3,4,5,undefined

    在ECMAScript5中,可以用Object.defindProperty()让数组的length属性变成只读的:

    1 a=[1,2,3];
    2 Object.defineProperty(a,"length",{
    3     writable:false
    4 });
    5 a.length=0;//a不会改变

    数组元素的添加和删除:

    添加:

    1、为新索引赋值:

    a=[];
    a[0]=1;
    a[1]=2;

    2、使用push()方法:每次在数组的尾部添加元素

    a=[];
    a.push(1);
    a.push(1,2);

    可以使用delete删除数组中的一个元素,但是,对一个数组元素使用delete不会修改数组的length属性。如果从数组中删除一个元素,它就会变成稀疏数组。

    还有一些关于数组的方法:

    pop():返回数组的最后一项;

    shift():移除数组中的第一项并返回该项;

    unshift():在数组前端添加任意个项并返回新数组的长度。

  • 相关阅读:
    高性能反射初体验2
    高性能反射初体验1
    HTML解析原理
    QQ邮箱漂流瓶的"变化"~~
    javascript跟随滚动条滚动,onscroll事件的学习
    认识一下window.location.hash
    IE中替换a标签href属性的一个bug
    用css Sprites的时候IE6的一个小bug
    css中如何引入“非常” 字体
    [重温经典]ie6 不支持position:fix的解决方案
  • 原文地址:https://www.cnblogs.com/luxueping/p/5593523.html
Copyright © 2011-2022 走看看