- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
浅析JavaScript中的array数组类型系统.doc
浅析JavaScript中的array数组类型系统
前面的话
数组是一组按序排列的值,相对地,对象的属性名称
是无序的。从本质上讲,数组使用数字作为查找键,而对 象拥有用户自定义的属性名。javascript没有真正的关联 数组,但对象可用于实现关联的功能
Array ()仅仅是一种特殊类型的Object (),也就是说,
Array ()实例基本上是拥有一些额外功能的Object ()实例。 数组可以保存任何类型的值,这些值可以随时更新或删 除,且数组的大小是动态调整的
除了对象之外,数组Array类型可能是javascript中 最常用的类型了。而且,javascript中的数组与其他多数 语言中的数组有着相当大的区别。本文将介绍javas cript 中的数组Ar ray类型
创建数组
有两种创建数组的方法:使用字面量语法和使用A
rray ()构造函数
【字面量】
使用数组字面量是创建数组最简单的方法,在方括号
中将数组元素用逗号隔开即可
varempty=[] ;//没有元素的数组 varprimes=[2, 3, 5, 7, 11 ];〃有 5 个数值的数组
虽然javasc ript数组与其他语言中的数组都是数据的 有序列表,但与其他语言不同的是,javascri pt数组的每 一项可以保存任何类型的数据
v armisc=[l. 1 , true, a] ;//3 个不同类型的元素
数组字面量中的值不一定要是常量,它们可以是任意 的表达式
varb ase=1024;
vartable= [b ase, base+1, base+2, base +3];
它可以包含对象字面量或其他数组字面量
varb=[[l, {x:l, y:2}], [2, {x:3, y:4 }]];
如果数组的元素还是数组,就形成了多维数组
vara二[[1, 2], [3, 4]];
[注意]使用数字字面量表示法时,不会调用A rray构 造函数
【构造函数】
有三种方式调用构造函数
[1]没有参数,创建一个空数组
//该方法创建一个没有任何元素的空数组,等同于数 组直接量[]
vara=newArray();
[2]有一个数值参数,该参数用于指定数组的长度
vara=new Array (10);
c onsole? log(a);//[]
co nsole. log (a [0], a. lengt h) ;//undefi nedlO
[注意]若存在一个其他类型的参数,则会创建包含那 个值的只有一项的数组
var a=newArray (? 10,);
con sole? log(a) ;//[ 10]
console? log (a[0], a. len gth) ;//101
【3】有多个参数时,参数表示为数组的具体元素
vara二new Array (1, 2, 3 );
console ? log(a) ;//[l, 2, 3_
con sole. log(a[0], a[l], a[2 ]) ;//123
使用Array ()构造函数时,可以省略new操作符 varal=Arr ay ();
vara2二Array (10);
v ara3=Array (1, 2, 3);
co nsole. log (a 1, a2, a3) ;//[] [] [1, 2, 3]
数组本质
数组是按次序排列的一组值,本质上,数组是一种特 殊的对象
typeof[1, 2, 3]//〃obje ct〃
数组的特殊性体现在,它的键名是按次序排列的一组 整数(0, L 2…)。由于数组成员的键名是固定的,因此数
组不用为每个元素指定键名,而对象的每个成员都必须指 定键名
va rarr二[a, b , c];
c onsole. log(Object. keys (arr));//[0,1,2] varobj={ nam el: a,
name 2: b,
name3 : c
};
数组是对象的特殊形式,使用方括号访问数组元素就 像用方括号访问对象的属性一样
javascri pt语言规定,对象的键名一律为字符串,所 以,数组的键名其实也是字符串。之所以可以用数值读取, 是因为非字符串的键名会被转为字符串,然后将其作为属 性名来使用
o ={} ;//创建一个普通的对象
o [l]=〃one〃; //用一个整数来索引它
//数值键名被自动转成字符串
vararr=[,a, b, c];
a rr [ O ]// a
arr [O]//5 a
但是,一定要区分数组索引和对象的属性名:所有的 索引都是属性名,但只有在0^232-2(429496729 4)之间的 整数属性名才是索引
vara=[];
//索引
af 1000 ]二abc?
文档评论(0)