JS-数组

数组是引用类型,体现在:当我们定义一个数组,typeof array时,输出的是object

还有一个例子:

<script>
    let array = [1,2,3,4];

    let hd = array;
    hd[1] = 9;
    console.log(hd);
    console.log(array);
</script>

hd和array输出的都是[1,9,3,4];

----------------------------------------------------------------------

插着说一下const常量和引用的关系:

const定义的量是常量,是没法改的,注意:这个没法改,指的是内存地址没法改,不是内存地址对应的值没法改。

什么意思呢,const  a = 1; a = 3;这样会报错;因为当执行a =3 时,系统在内存开辟了一个新的地址存放3,然后把3的地址赋给a,但是a是const定义的常量,a一直要对应1这个内存地址,所以报错。

用数字类型可能有点无法理解,如果用字符串类型就很好理解。

接着说一下数组,数组也是引用关系,例如这样:const array = [1,2,3];array[1] = 100;这样不会报错;

因为我们改变的是这个地址里面的值,而不是改变地址。

---------------------------------------------------------------------

数组创建的细节问题:

<script>
    let array = [1,2,3,4];

    //查看数组的数量
    console.log(array.length);

    //下面这种,是创建了一个数组,数组有3个值,
    //每一个都是undefined
    let arr = new Array(3);
    console.log(arr.length);
    console.log(arr);

    //针对上面的解决办法:
    //一个数组,数组里面只有1个值,是3
    let a = Array.of(3);
    console.log(a.length);
    console.log(a);
</script>

数组和字符串之间的转换:

<script>
    let array = [1,2,3,4];

    //检测传入的是否是数组
    console.log(Array.isArray(array));  //true
    console.log(Array.isArray({}));     //false

    //把数组转为字符串
    console.log(array.toString());
    
    let hd = array.join("!");   //用感叹号连接
    console.log(hd);

    //把字符串转换为数组
    console.log(hd.split("!"));//按感叹号 
    //有.length属性的都可以用from来转为数组
    console.log(Array.from(hd));
</script>

展开语法(...arr,...?,...):

<script>
    let arr = [1,2,3];
    let hd = [4,5];

    //展开语法
    //把hd追加到arr后面
    arr = [...arr,...hd];
    console.log(arr);
</script>

增加元素的多种操作:

<script>
    let arr = [0,1,2];

    //方法1
    arr[3] = 3;
    console.log(arr);

    //方法1进阶版
    arr[arr.length] = 4;
    console.log(arr);

    //方法2 展开语法...arr
    let hd = [5,6,7];
    arr = [...arr,...hd];
    console.log(arr);

    //方法3 推荐 push
    arr.push(8,9,10);
    console.log(arr);

    //方法2和3的结合
    arr.push(...hd);
    console.log(arr);
</script>

数组出栈入栈操作:

<script>
    let arr = [0,1,2,3];

    //从前面弹出一个值
    arr.shift();
    console.log(arr);

    //从前面加入
    arr.unshift(0);
    console.log(arr);

    //从后面弹出
    arr.pop();
    console.log(arr);

    //从后面假如
    arr.push(3);
    console.log(arr);
</script>

 数组排序:

<script>
    let arr = [0,5,8,1,2,3,6];

    arr = arr.sort(function(a,b){
        //b-a 从大到小      a-b 从小到大
        return a-b;
    })
    console.log(arr);
</script>

 

posted @ 2022-03-04 18:50  沉梦昂志_doc  阅读(27)  评论(0编辑  收藏  举报