## 前言
在 JS 中,`Arrary` 是一个特殊的对象。我们回忆一下对象的定义:在 JS 中,由键值对组成的无序的合集。但是很多时候我们并不关心对象的键值对的键,我们只是希望它是按照一定的顺序,然后我们可以依次的取出来或者对它进行依次的操作。那么这个时候我们就需要使用一种特殊的数据类型 `Arrary`。
> Arrary:在 JS 中,如果一个对象是有序的,那么我们就称这种特殊的对象为数组
## 一、数组的特性
1. 数组的项的数据类型是不限制的
2. 数组的长度(length)可以调整
3. 数组可以
## 二、创建数组
### 1. new 操作符
~~~js
let arrary = new Arrary(1,2,3)
~~~
### 2. 字面量
~~~js
let arrary = [];
arrary[0] = 1;
arrary[1] = 2;
arrary[2] = 3;
~~~
## 三、数组长度的上限
> 2^32-2
## 四、检测数组
1. instanceof `object instanceof Arrary`
2. `list.constructor === "Arrary"`
3. ES5中新方法 `isArrary()` 返回布尔类型
4. `Object.prototype.toString.call(list) === "[object Arrary]"`:[为什么用Object.prototype.toString.call(obj)检测对象类型?](https://www.cnblogs.com/youhong/p/6209054.html):只能判断出12种对象(8种常见对象+1种错误对象+2内置对象+函数中的Arguments对象)
你在使用的时候,先判断浏览器是否支持 `isArrary()`,使用 `typeof list.isArrary()` 判断是否是 `Function`。如果不是Function,则使用第四种。
## 操作数组的方法
[![数组的方法](images/数组的方法.svg)](http://naotu.baidu.com/file/50efd25c5d66e6b0b34876dacce4ffd1?token=29edf2e743b75033)
### 排序方法
`reverse()` 和 `sort()` 方法的返回值是经过排序之后的数组。
- JavaScript
- JS数据类型
- Arrary不是拦路虎
- pdfjs
- Atom
- 推荐的插件
- Atom命令行
- 微信小程序
- canvas
- canvas绘图
- 卡片制作
- canvas写字
- 开放接口
- 获取小程序二维码
- 获取用户绑定的手机号
- 客服消息
- 获取用户信息
- 全局
- 小程序加密数据解密
- 小程序服务域名配置
- access_token
- 小程序登录流程
- openid
- wxPromise
- 基础库最低版本设置
- 子页面向父页面传值
- 微信小程序onLaunch异步,页面onLoad先执行
- 框架选择
- 小程序搜索功能
- 媒体
- 小程序保存图片到本地相册
- vuejs
- vuejs ui框架
- Bmob
- Bmob源码解析
- LeanCloud
- AVQuery和AV.Object.createWithout()
- 在线编辑器可依赖的库
- 大数据
- 数据接口
- 地图
- ajax
- 基于promise的ajax
- CSS
- css文字处理
- 运维
- Jenkins
- 群聊收藏
- 设计师
- 前端工程化
- gulp