JS数组的不同声明方式有什么区别

JavaScript016

JS数组的不同声明方式有什么区别,第1张

并没有四种,只有两种:

使用构造函数:var arr = new Array()

使用字面量形式:var arr = [1,2,3]

其他形式只是对这两种形式的不同用法;

建议买本高程的书看吧,里面介绍的既详细又系统。

+++++++++++++++++

补充:

其实还有一种方式: var arr = Array()也是构造函数声明方式的简写

这三种声明方式实际上并没有什么区别,可以根据不同需求来.

比如:

声明一个长度200的数组,元素不确定, 使用构造函数比较好. var arr = Array(200)

声明一个有五个元素的数组,但第四个元素不确定,可以用字面量. var arr = ["apple","bannar","pear",,"orange"]

当然最常用的就是字面量形式了.详细Array object

翻书不方便,平时可以多查查MDN,类似于文档,但比W3SCHOOL靠谱详细的多.但对于对象来说,两种声明方式是有点不太一样的,具体的你可以去MDN上查找相关资料.

下面最后两种很少见,也不要用,书上都没教,纯粹这样也是宣告(声明)数组的合法语句而已:

var a = []

var b = new Array()

var c = Array()

var d = Object.create(Array.prototype)

a.push(1)

b.push(2)

c.push(3)

d.push(4)

console.log(a)

console.log(b)

console.log(c)

console.log(d)

要用var a = []而不要用var a = new Array()这种,是因为第二种比较慢,而且它如果只传一个参数时,与传两个参数的行为不同,容易在使用上造成错误。

有些人从其他语言(例如Java)学过来学或教JS的人会认为像var a = new Array(10)可以预先分配好空间,之后作处理方便。但JS是脚本语言,数组的宣告(声明)与执行方式是不同的。

2019-04-18

语法格式一:

数组名 = new Array(数组元素1,数组元素2… …)

语法格式二:

数组名 = [数组元素1,数组元素2 … … ]

语法格式二:

数组名 = new Array(数组大小)

语法格式三:

数组名 = new Array()

可以通过delete命令删除数组元素值,但仅是将元素设为undefined,数组长度没有改变

注意:JavaScript默认机制把数组中的每一项当成字符串方式来排序,可自定义回调函数实现数值排序

语法格式:

非数值索引

说明:取非数值索引可以使用foreach遍历法