数组有两种定义方式:
    1 var arr = []; 数组字面量
    这即使里面只写逗号也行 只是值会为undefined
    如 var arr = [1,2, , ,5]; 数组长度仍然为5(稀松数组)
    2 var arr = new Array();
    括号里也可以添参数 由此构成数组 但是不能像数组字面量那样 只写逗号 这里必须写值
    如 var arr = new Array(1,2,3,4,5);
    如果只传一个值 表示索要创建数组的长度 所以传一个值时 要符合规范 比如写小数就不符合
    var arr = new Array(10); 数组长度为10

    数组就是一个特殊的对象 所以它会像对象一样 不会产生索引越界的问题
    如 var arr = []; arr[10]; //系统会给你返回 undefined
    但是若直接往数组第10为里面存值 那么数组长度就直接变为11

    改变原数组
    1 push()
    往数组最后一位上添加 并返回添加后数组的长度
    2 pop()
    移除数组的最后一位 并返回被移除的数据
    3 unshift()
    往数组首位上添加 并返回添加后数组的长度
    如 var arr = [1,2,3];
    arr.unshift(4,5);
    //结果为 [4,5,1,2,3]
    4 shift()
    移除数组的首位 并返回被移除的数据
    5 reverse()
    返回逆转顺序之后的数组
    *6 splice(从第几号索引开始,截取多少长度,往截取处添加新的数据)
    也可以不添加新数据 返回截取后的数组
    数组这里索引可以写负数 底层会自动给负数加上当前数组的长度
    比如 pos += pos > 0 ? 0 : this.length;
    数组长度为4 索引写-1 则对应索引为3
    如 var arr = [1,2,3,5];
    arr.splice(3,0,4);
    //结果为 [1,2,3,4,5]

    7 sort()
    数组按asc码的次序排列 asc码位于前面的排在前面
    若想改变这一排列规则 可以自己传参一个函数 sort(function)
    规则:
    1 这个函数必须写两个形参
    2 看返回值
    2.1 当返回值为负数时 那么前面的数放在前面
    2.2 当返回值为正数时 那么后面的数放在前面
    2.3 当返回值为0时 不动
    函数的运作方式是 每次会传两个数进去 比较这两个数 再根据返回值正负来调整顺序
    如 var ar = [1,4,3,2];
    arr.sort(function (a,b){
    if(a>b){
    return 1;
    }else{
    return -1;
    }
    });
    //传参 [1,4] 返回-1 则前面的数放在前面 数组不变[1,4,3,2]
    //传参 [1,3] 返回-1 数组不变[1,4,3,2]
    //传参 [1,2] 返回-1 数组不变[1,4,3,2]
    //传参 [4,3] 返回1 则后面的数放在前面 数组变为[1,3,4,2]
    //传参 [3,2] 返回1 数组变为[1,2,4,3]
    //传参[4,3] 返回1 数组变为[1,2,3,4]
    //排序完毕 类似与冒泡排序
    如上可简写为
    arr.sort(function (a,b){
    //return a-b;升序
    //return b-a;降序
    });
    不改变原数组
    1 concat()
    连接两个数组

    var arr = [1,2,3];
    var arr1 = [4,5,6];
    arr.concat(arr1);
    //得到一个全新的数组[1,2,3,4,5,6]
    //注意原数组不发生变化
    2 slice(从该位截取,截取到该位前)
    若不说明截取到第几位 默认到结尾
    若参数都不写 则整个截取

    var arr = [1,2,3,4,5,6];
    arr.slice(1,3);
    //得到一个新的数组[2,3]
    //注意原数组不发生变化
    arr.slice();
    //得到一个新的数组[1,2,3,4,5,6]
    3 join(字符串形式的参数)
    按照参数连接数组为一个字符串
    如果不传参 默认用逗号 , 连接

    var arr = [1,2,3];
    arr.join(‘-‘);
    //得到一个字符串 ‘1-2-3’
    3.1 split(字符串形式的参数)
    按照参数将字符串拆分数组
    如果不传参 就不拆 整个字符串装入数组

    var str = ‘a-b-c’;
    str.split(‘-‘);
    //得到一个数组[‘a’,’b’,’c’]