JavaScript小进阶1--数组原理探析

ITPUB老博客搬迁至此

基础坑必知:

js中的数组声明时不需要指定数据类型,不强制指定长度,可以同时存储各种数据类型的数据。这在java中任何一个都是不可想象的。

数组的声明方式:

  var arr = [2, “luozhixiao”, 4, 5, 6]; //隐式创建

  var arr = new Array(2, “luozhixiao”, 4, 5, 6); //构造方法(这里可以看出js中数组也是个对象,是构造出来的)

  var arr = new Array(5);//创建一个长度为5的数组:这容易和上面的构造方法混淆,故极少用。

在学习语法的时候我们需要知道一点:语法模拟:仅仅为了简便起见而已;

     如:

     数组的声明,[]  ----〉 new Array();(这是一个构造方法!!!)

     对象的声明,{}  ----〉 new Object();

     正则的声明,//  ----〉 new RegExp();

数组的遍历:

     (1) for(var i = 0 ; i

     (2) for(var  i  in  arr){ alert(arr[i]);}

     Java中,forEach 遍历ArrayList , i 就是arr中的一个元素了;可是在js中,i 仅仅是arr的下标而已!!!

     其实我觉得这个设计比java的for…in更优秀,毕竟在java中我们for…in无法获取对应的下标而仅仅得到其元素而已。

 二维数组:

  var arr = [[],[],[],[]];

  var arr2 = [["luozhixiao",22,"huazhou"],["limeisheng",44,"meizhou"]];

原理坑须知:

  1. 在js中,我们要明确一点是,数组不是数据类型,而是Object类型,对象!!!

         Js 中 for …in 可以遍历一个对象的所有属性,也可以遍历一个数组的所有属性。

         遍历一个对象的所有属性:

           Var  obj = {name : “luozhixiao”  ,  age:22  ,  address:”huazhou”};

           For(var i  in  obj){  alert(obj[i]) ;  }

           遍历一个数组的所有元素:见下例。


2. 在js中,数组真的是被设计的好灵活:下标可以是字符串!!!即:文本下标!!(然而,真的是下标么?且看下面分析)

   

结果如下:

for...in遍历:

0 : undefined

1 : undefined

2 : undefined

3 : undefined

10 : undefined

address : undefined

country : undefined

你可能感兴趣的:(JavaScript小进阶1--数组原理探析)