神奇的数组

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语言学习,我在进行中,加油......

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 8,895评论 0 4
  • 数组是值的有序集合。每个值叫做一个元素,而每个元素在数组中有一个位置,以数字表示,称为索引。 JavaScript...
    劼哥stone阅读 4,858评论 6 20
  • 第三章 类型、值和变量 1、存取字符串、数字或布尔值的属性时创建的临时对象称做包装对象,它只是偶尔用来区分字符串值...
    坤少卡卡阅读 3,875评论 0 1
  • FreeCodeCamp - Basic JavaScript 写在前面: 我曾经在进谷前刷过这一套题,不过当时只...
    付林恒阅读 16,565评论 5 28
  • 老板:你来大城市干嘛呀?奇奇:来完成自己的任务。老板:那你的任务是什么呢?奇奇:我也不知道,但是每个人来到这个世界...
    金小爻阅读 4,654评论 4 7

友情链接更多精彩内容