1. <div>1</div>
2. <div>2</div>
3. <div>3</div>
4. <div>4</div>

1. var array = new Array(4)
2. array.push(1)
3. array.push(4)
4. array.push(3)
5. array.push(6)
6. console.log(array)
7.
8. var array = [1,2,3]
9. console.log(array)
10. var array = new Array(1,2,3)
11. console.log(array)
12. var array = Array(1,2,3)
13. console.log(array)
14.
15. array.push(4)
16. console.log(array)
17. // 在数组的末尾添加一个新元素
18.
19. array.unshift(5)
20. console.log(array)
21. // 在数组的开头添加一个新元素
22.
23. console.log(array.shift())
24. // 在数组中的开头移除并返回一个新元素
25. console.log(array)
26.
27. console.log(array.pop())
28. // 在数组中的结尾移除并返回一个新元素
29. console.log(array)
30.
31. // push 和 pop 可以构成一个堆栈
32. // unshift 和 shift 可以构成一个堆栈
33. // push 和 shift 可以构成一个队列
34. // unshift 和 pop 可以构成一个队列
35.
36. // 栈 队列 先进先出
37. // 堆 后进先出
38.
39. var o = array[1]
40. // 使用 [x] 可以得到第 x+1 个元素
41. console.log(o)
42.
43. var arr1 = ['c','a','s','d','f','b','n','y']
44. arr1.reverse()
45. console.log(arr1)
46. // 反转数组中的元素 倒着排
47. console.log(arr1.sort())
48. // 如果调用方法时没有使用参数 将按字母顺序对数组中的元素进行排序 按照字符编码Unicode            
49.
50. var p1 = {
51.     name:'wangBaoQiang',
52.     age:4
53. }
54. var p2 = {
55.     name :'maRong',
56.     age:3
57. }
58. var p3 = {
59.     name :'maRong1',
60.     age:2
61. }
62. var p4 = {
63.     name :'maRong2',
64.     age:6
65. }
66. arr2 = [p1,p2,p3,p4]
67. arr2.sort(function(a,b){
68.         // console.log(a.age > b.age)
69.         // a-b大于0(从小到大) 正序
70.         // a-b小于0(从大到小) 倒序
71.         // a-b等于0 相对位置不变
72.         return a.age - b.age < 0
73. })
74. console.log(arr2)
75.
76.
77. // arr1.splice(6,0)
78. // console.log(arr1)
79. // 会删除索引位置为5之后的所有元素
80.
81. // arr1.splice(6,1)
82. // console.log(arr1)
83. // 第二个参数是删除元素的个数
84.
85. // arr1.splice(4,5,'h','t','m','l','5')
86. // console.log(arr1)
87. // 第三个参数及之后的参数会插入到数组中
88.
89. var arr2 = arr1.concat([1,2,3],4,5,6)
90. console.log(arr2)
91. // 可以连接数组也可以连接值
92.
93. console.log(arr2.join('---'))
94. // 连接数组元素 返回一个字符串 
95. // 连接可以指定使用任意字符连接 也可以用多个字符连接
96.
97. var strs = [
98.     '你好',
99.     '你过来',
100.     '我们一起嗨起来'
101. ]
102. console.log(strs.join(''))
103. console.log(strs.join())
104. console.log(strs.join(null))
105. console.log(strs.join(undefined))
106. console.log(strs.join(0))
107.
108. console.log(arr1)
109.
110. console.log(arr1.slice(2))
111. // 从该索引出提取原数组中的元素 索引从0开始
112. console.log(arr1.slice(2,4))
113. // 第一个参数是开始位置会保留 第二个参数是结束位置会被切掉
114. console.log(arr1.slice(-2))
115. // 如果是负数 那么它规定从数组位置开始算起的位置
116. // 也就是说-1是最后一个元素 -2指的是倒数第二个元素 以此类推
117. // 第一个参数是负数值时会倒着切
118.
119. console.log(arr1.slice(-2,-4))
120. console.log(arr1.slice(-2,-1))
121. // 如果第二个参数小于第一个参数则返回一个空数组
122.
123. console.log(arr1.slice())
124. // 不传参数会整体复制一下 得到一个相同的数组 相当于数组复制
125.
126. var divs = document.querySelectorAll('div')
127. // console.log(divs.slice(2))  // not a function
128. // console.log(divs.shift()) //not a function
129. var divArr = []
130. for(var i = 0;i<divs.length;i++){
131.     divArr.push(divs[i])
132. }
133. console.log(divArr)
134. // 转化为数组
135.
136. var divArr1 = Array.prototype.slice.call(divs)
137. console.log(divArr1)
138. // 使用call调用Array对象的原型(prototype)的slice方法
139. // 调用的结果是divs被复制成一个数组Array对象
140.
141. divArr1 = Array.prototype.slice.apply(divs)
142. console.log(divArr1)
143. // 同上call方法
144.
145. console.log(arr1)
146. console.log(arr1.indexOf('a'))
147. // 从前往后查找元素的位置 找到的是第一个位置
148. console.log(arr1.indexOf('t'))
149. // 如果没有找到则返回-1
150.
151. console.log(arr1.lastIndexOf('d'))
152. // 倒着找 找到1个就停止