Skip to content

Commit 84155df

Browse files
committed
Create 第七章 数组
1 parent a67cf7c commit 84155df

1 file changed

Lines changed: 192 additions & 0 deletions

File tree

JavaScriptBook/第七章 数组

Lines changed: 192 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,192 @@
1+
/*
2+
*数组的值得有序集合。每个值叫元素,每个元素在数组中有一个位置
3+
*以数字表示成为索引。
4+
*JavaScript 数组是无类型。元素随意,索引最大4294967294(2^32-2)
5+
*它是动态的,有length属性。
6+
*用数字索引访问数组元素比常规的对象属性要快。
7+
*数组继承Array.prototype属性,7.8-7.9
8+
*数组的操作方法对“类数组对象”同样有效7.11
9+
*字符串的行为与字符串数组类似7.12
10+
*/
11+
12+
13+
14+
15+
16+
17+
//7.1 创建数组
18+
19+
//在方括号中将数组元素用逗号隔开
20+
21+
var b =[1,[1,{x:1,y:3}],,]
22+
23+
/*[1,
24+
Array[2]=>
25+
0: 1,
26+
1: Object
27+
x: 1
28+
y: 3
29+
, undefined × 1]
30+
*/
31+
32+
//如果省略数组直接量的某个值,省略元素将被赋予undefined值
33+
//数组直接量的语法允许有可选的结尾的逗号,故[,,]只有两个元素
34+
35+
//用构造函数Array创建
36+
var a = new Array();
37+
// 空数组 []
38+
39+
//指定长度
40+
var a = new Array(10)
41+
//预选分配一个数组空间,数组中无值,无索引
42+
43+
var a = new Array(232,32,3,'teset');
44+
//数组字面量
45+
/**
46+
*var a =new Array(23,23,32,'tt',,,) 这样是错的
47+
*/
48+
49+
50+
51+
52+
53+
//7.2数组元素的读和写
54+
var arr =['world']
55+
undefined
56+
arr
57+
["world"]
58+
var value = a[0]
59+
undefined
60+
value
61+
23
62+
var value = arr[0]
63+
undefined
64+
value
65+
"world"
66+
a[1] = 2.3
67+
2.3
68+
i =2
69+
2
70+
arr[1] = 2.3
71+
2.3
72+
arr[i] = 3
73+
3
74+
a[i+1] ='hello'
75+
"hello"
76+
a[a[i]]=a[0]
77+
23
78+
arr[i+1] ='hello'
79+
"hello"
80+
arr[arr[i]]=a[0]
81+
23
82+
arr[arr[i]]=arr[0]
83+
"world"
84+
arr
85+
["world", 2.3, 3, "world"]
86+
87+
//正常的数组设置访问
88+
89+
//数组是对象的特殊形式。
90+
//所有的索引都是属性名,只有0-2^32-2之间的整数属性名才是索引。
91+
//所有数组都是对象,可以创建任意名字的属性。
92+
//但如果使用的属性是数组的索引,数组的特殊行为是更新length属性
93+
//负数非整数的索引数组,数值转为字符串
94+
95+
arr[-9]=true
96+
true
97+
arr
98+
["world", 2.3, 3, "world"]
99+
arr[-9]
100+
true
101+
arr.length
102+
4
103+
Object.getOwnPropertyDescriptor(arr,'-9')
104+
Object {value: true, writable: true, enumerable: true, configurable: true}
105+
106+
//当访问不存在的属性时返回undefined
107+
//数组可以定义元素的getter和setter方法。
108+
109+
110+
// 数组对象部分 访问方式 通过 “." 来访问
111+
// 数组没字符索引,arr['str']被作为属性使用
112+
113+
arr = new Array();
114+
[]
115+
arr[0]='this is arr'
116+
"this is arr"
117+
arr[10]='ten'
118+
"ten"
119+
arr
120+
["this is arr", undefined × 9, "ten"]
121+
arr['c']='int'
122+
"int"
123+
arr
124+
["this is arr", undefined × 9, "ten"]
125+
arr.c
126+
"int"
127+
arr.le
128+
undefined
129+
arr.length
130+
11
131+
arr
132+
["this is arr", undefined × 9, "ten"]
133+
arr.length
134+
11
135+
136+
//7.3稀疏数组
137+
//稀疏数组就是包含从0开始的不连续索引的数组
138+
//当数组是稀疏数组数组时,length属性值大于元素的个数。此时,一切也是就数组长度保证大于它
139+
//每个元素的索引值。
140+
//为数组赋值时,索引i大于或等于数组长度时,length属性值将设为i+1
141+
//设置length属性为小于当前长度的非负整数n时,当前数组中那些索引值大于或等于n的元素将从中删除。
142+
//还可以将length的值设置大于当前索引长度,超出的部分创建为空的区域。
143+
var m=[23,3,3,4,4,]
144+
m.length
145+
5
146+
m.length =3
147+
3
148+
m
149+
[23, 3, 3]
150+
m.length =31
151+
31
152+
m
153+
[23, 3, 3, undefined × 28]
154+
155+
//7.5 数组元素的添加和删除
156+
157+
为索引赋值
158+
a = [];//空数组
159+
a[0]='zero';
160+
a[1]='one';
161+
162+
//使用push()想数组尾部添加一个或多个元素
163+
a.push('zero','one')
164+
2
165+
a
166+
["zero", "one"]
167+
//等同于a[a.length]赋值方式
168+
169+
//向数组首部插入一个元素
170+
a.unshift('start')
171+
3
172+
a
173+
["start", "zero", "one"]
174+
a[0]
175+
"start"
176+
177+
//可以像删除对象一样使用delete 删除数组元素
178+
delete a[1]
179+
true
180+
a
181+
["start", undefined × 1, "one"]
182+
1 in a //数组索引不在数组中定义
183+
false //
184+
a.length //数组长度不变
185+
3
186+
//通过pop()方法来删除尾部元素返回删除值并减少length属性
187+
//splice() 方法通过插入方法,删除或天幻数组元素 7.8节
188+
189+
//7.6数组遍历
190+
191+
192+

0 commit comments

Comments
 (0)