### 03:数组的属性 && 操作方法
[TOC]
#### 一、Array property 数组的属性
##### 1、constructor
返回对创建此对象的数组函数的引用
```javascript
[].constructor
// ƒ Array() { [native code] }
```
##### 2、length
返回 或者 设置数组中元素的数目
```javascript
const abc = ['a', 'b', 'c']
console.log(abc.length) // 3
abc.length = 2
console.log(abc) // ['a', 'b']
abc.length = 4
console.log(abc) // ["a", "b", "c", empty]
```
##### 3、prototype:使您有能力向对象添加属性和方法
那么数组的 prototype 属于 就是 JS 原生带的非常多的方法。
#### 二、Array prototype 数组的原型
这里,我们就详细的介绍下 Array prototype 数组的原型 中包含了哪些方法
##### 1、concat()
` 连接两个数组,并返回结果 `
```javascript
const a = [1,2,3,4]
const b = [5,6,7,8]
const c = a.concat(b)
// [1, 2, 3, 4, 5, 6, 7, 8]
```
##### 2、join()
` 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔 `
```javascript
const a = [1,2,3,4]
const aStrin = a.join(',') // "1,2,3,4"
```
` 那么在这个原生方法中我们常常会用到的这个方法来解决一些问题, 比如调换字符串的排序`
` eg: `
```javascript
const aArray = '1,2,3,4,5,6,7'
const arrayA = aArray.split(',').reverse().join(',')
// "7,6,5,4,3,2,1"
```
##### 3、pop()
` 删除并返回数组的最后一项 `
```javascript
const testArray = [1,2,3,4,5,6,7]
cosnt a = testArray.pop() // 7
console.log(testArray) // [1,2,3,4,5,6]
// pop 和 push 组合成栈
```
##### 4、push()
` 向数组的末尾添加一个或多个元素,并返回数组的新长度 `
```javascript
const a = [12,123,1234]
var l = a.push(12345)
console.log(l) // 4
console.log(a) // [12, 123, 1234, 12345]
```
##### 5、shift()
` 删除并返回数组的第一个元素 `
```javascript