01
JavaScript有很多数据类型,数组就是其中的一类。英文名叫Array。
例如:var names=["zhangsan" , "lisi", "wangwu", "zhaoliu"];
其标志就是一堆方括号【】。
提到数组,就要提到另一个数据类型:“对象(object)”。
例如:var names={ firstName:"zhangsan", secondName:"lisi", thirdName:"wangwu", fourthName:"zhaoliu" }
这两个例子都是表达name的值。从数组的定义中可以得出,JavaScript中,数组其实是对象的一种特殊形式。
数组的索引实际上和碰巧是整数的对象属性名差不多。 例子中,数组里的索引,和对象里属性名,其实都是一回事。只不过数组的索引从“0”开始罢了。
也可以理解为,数组是经过优化排序的对象。因为排序的优化,所以用索引来遍历整个数组,比访问常规的对象属性要方便的多。我想这也是数组的意义所在。
02
关于数组的神奇,首先让我惊讶的是它的索引是从“0”开始。
为何不从“1”开始?开始询问“度娘”。网上一大堆回答,从编程基础知识,到计算机基础科学,让我陷入浩瀚的知识海洋之中,然后彻底懵逼。
只有一个答案,让我看懂了。为何索引从“0”开始。因为这属于“乌龟的屁股长痔疮”,“烂龟腚(烂规定)”。
好吧,既然是规定,咱啥不说了,执行就是了。
不过,值得注意的是,数组的长度(length)是从1开始计数,有一个值,算一个值。不能从零计数。
03
另外还有一类数组,比较奇葩----稀疏数组。
例如: var array=[, , , ];
这可不是一个空数组,他是一个稀疏数组,他也有值,
只不过值为:【undefined,undefined,undefined】。这个数组仍有长度(length),长度为3。
这也解释了为何数组中有一个元素删除了,可长度仍然不变。
关于数组知识,之前我接触最多的知识就是遍历数组,也就是“for循环”。经过一周的JavaScript数组基础知识温习,我感觉到数组的知识很多。光数组方法有近20种。
什么是数组方法?我个人浅显理解就是,通过运用一些函数,将数组进行排序、过滤、运算、简化、搜索等操作。这些针对数组而内置的函数,就是数组的方法。说白了就是数组的函数。
从join()、reverse()、sort()、push()、pop()到forEach()、reduce()......
可谓眼花缭乱,这些方法中,有些看上去很相似,但其实有着本质区别。
比如:splice()方法,与slice()方法,这两个方法拥有非常相似的名字,但是功能有着本质的区别。因为splice()方法,不仅会返回一个新的数组,还会修改最初调用的数组。
这么多数组方法,都是根据编程的需求来选择。而这些方法,本质上来讲,其实也是一个函数,一个操作数组的函数。只不过被内置了,我们看不到function字样,看不见函数体{ }罢了。
04
数组虽然看上去就是两个方括号,但是这里面的学问可谓另有乾坤。神奇的数组,需要们花时间去挖掘他,掌握它,直至熟练运用它。
JavaScript语言学习,我在进行中,加油......
网友评论