var b = new Array(8);
var c = new Array(“first”, “second”, “third”);
“这三种方式有着各自的区别,第一种是直接用构造函数创建一个空的数组,也就是说,这个数组里面什么都没有。数组天生就拥有一个length属性,我可以让这个a变量调用自身的length属性来验证这一点。”
var a = new Array();
console.log(a.length);
代码运行,众人看得清清楚楚,结果是一个“0”。
“相信各位也看到了,这段代码的结果是一个0,这表示当前的数组对象里面啥也没有。接下来看第二种方式。”
var b = new Array(8);
“这种方式和刚才那种有所不同,不同点就在于,它虽然也是创建一个数组,但是却在创建的同时,设置了一个初始的长度,大家看,Array是一个函数,new关键字表示在创建这个函数所表示的对象,因为是函数,所以自然是可以打括号的。没错,函数可以打括号,打括号的意思就是要去执行这个函数的函数体。函数是有参数的,这个8就是参数。在这个例子中,8就表示给数组对象添加一个初始化的长度,我依然可以用数组的length属性来验证这一点。”说着,叶小凡继续打出代码:
var b = new Array(8);
console.log(b.length);
代码运行,众人看得清清楚楚,结果是一个“8”。
“相信各位也看到了,这段代码的结果是一个8,这表示当前的数组对象里面已经有8个元素了。那么问题来了,我并没有给这个数组添加任何东西,最起码,看起来没有。那么,这八个元素到底是什么呢?这个待会说,先看最后一种方式。”
var c = new Array(“first”, “second”, “third”);
“这一种方式在创建数组对象的同时,就给它赋予了初值。简单来说,就是创建数组的时候,就给它添加了三个元素。正因为如此,所以这个数组当前的length属性已经有值了,而且就是里面元素的个数:3!”
var c = new Array(“first”, “second”, “third”);
console.log(c.length);
代码运行,众人看得清清楚楚,结果是一个“3”。
“什么,叶小凡,你…竟然连函数都知道了!”对面弟子瞪大了眼睛,一脸的难以置信,要知道,在JavaScript初级阶段,函数可是一门了不起的法术了!虽然也有一些悟性好的弟子提前对函数有了一知半解,但是大部分初级弟子都是无法驾驭函数的。
“还是继续讲讲数组吧,刚才我一共说了创建数组的四种方式,第一种是用直接量来创建数组,剩下三种都是用构造函数来创建数组。怎么说呢,其实用起来的话,还是第一种方法最好用了,也是最简单的一种方式。”
“嗯,说得好,关于数组的创建,叶小凡说得算是比较通透了。”林元青也满意得点了点头。场外弟子又是一阵喧嚣。
“刚才你还说到数组的length属性,那是什么?”对面弟子收起了对叶小凡的轻视,皱着眉头问到。
“哦,你说的是length属性,数组只有一个长度属性,就是length,length表示的是数组所占内存空间的数目,而不仅仅是数组中元素的个数。比如说,我可以定义一个长度为8的数组,但是里面却只有一个元素。就好像刚刚的代码。”
var b = new Array(8);
计算机网络
-
HTTP 缓存
-
你知道 302 状态码是什么嘛?你平时浏览网页的过程中遇到过哪些 302 的场景?
-
HTTP 常用的请求方式,区别和用途?
-
HTTPS 是什么?具体流程
-
三次握手和四次挥手
-
你对 TCP 滑动窗口有了解嘛?
-
WebSocket与Ajax的区别
-
了解 WebSocket 嘛?
-
HTTP 如何实现长连接?在什么时候会超时?
-
TCP 如何保证有效传输及拥塞控制原理。
-
TCP 协议怎么保证可靠的,UDP 为什么不可靠?
算法
-
链表
-
字符串
-
数组问题
-
二叉树
-
排序算法
-
二分查找
-
动态规划
-
BFS
-
栈
-
DFS
-
回溯算法