JavaScript初级知识(5)

            这次涉及的知识是与数组相关,与变量差不多,先声明,再赋值。

        1 声明数组(创建数组)

                两种方法

                    let arr=[]

                    let arr= new array()

                变量初始化:在声明的同时赋值。

                    let arr=[1,2]

                    let arr= new array(1,2)

                    let arr= new array(2)/一个数据时,代表数组的长度,不是数组的元素。

        2 操作数组(增,删,改,查)

        增   ---索引号从0开始

        // var arrStus = [1,2,3];
        // arrStus[3]=4;
        // alert(arrStus);

        删   ---效果不是很好,不建议使用,

            delete数组名[索引号]

            只是删除数值,数值的位置还在。内置方法可以解决

        // var arrStus = [1,2,3];
        // arrStus[3]=4;
        // alert(arrStus);
        // delete arrStus[0];
        // console.log(arrStus[0])//undefined

        改

            数组名[索引号]=新值

        查

            console.log(数组名[索引号])

            查数据类型的函数为instanceof

        3  遍历(循环)

            遍历: 就是把数组中的每个元素从头到尾都访问一次(类似我们每天早上学生的点名)

            我们可以通过 for 循环索引遍历数组中的每一项

            数组.length  数组的长度,数组中元素的个数,数组的长度永远比最大的索引号大1。

        // var arr = ['red', 'green', 'blue'];
        // for (var i = 0; i < arr.length; i++) {
        //     console.log(arr[i]);
        // }
        //     let a=[10,20];
        //     console.log(typeof a)//输出为object    用typeof查数组类型输出结果只有object
        //     console.log(a  instanceof Array)//true    输出结果为true或者false

        4 深拷贝和浅拷贝:

            1、浅拷贝,指的是重新分配一块内存,创建一个新的对象,但里面的元素是原对象中各个子对象的引用。

            2、深拷贝,是指重新分配一块内存,创建一个新的对象,并且将原对象中的元素,以递归的方式,通过创建新的子对象拷贝到新对象中。因此,新对象和原对象没有任何关联。

            3、区别:浅拷贝,修改原数组或新数组,两个数组的值会同步修改   ,深拷贝,修改原数组或新数组,两个数组的值不会同步修改

            4、本质区别:浅拷贝修改了值,不会新建一个内存地址的对象,    深拷贝 如果修改了值,及时复制了一份新的内存地址,原始地址的值不会被改变

    //浅拷贝
    //     let a2=a;
    //     console.log(a,a2)
    //     //深拷贝
    //     let a1=[];
    //     for(let i=0;i<a.length;i++){
    //         a1[i]=a[i];
    //         // a1[a1.length]=a[i];
    //     }
    //     console.log(a,a1)
    //     a[0]='nice';
    //     a1[2]='hello';
    //     console.log(a,a1);

        5 数组的内置方法

  函数名字  

 用法                                        

是否修改原数组

 数组.push(元素)                             

向数组的末尾添加元素并返回新数组的长度        
数组.pop()    删除数组的末尾元素并返回删除的元素    
数组.unshift(元素)  向数组的开头添加元素并返回新数组的长度
数组.shift()         删除数组的末尾元素并返回第一个元素             
 数组.splice(index,howmany,ele1)向数组的末尾添加元素并返回新数组的长度  

 

    // let a=[1,2,3,4]
    // let b=a.push(5);
    // console.log(a,b);//(5) [1, 2, 3, 4, 5] 5
    // let a=[1,2,3,4]
    // let b=a.pop();
    // console.log(a,b);//(3) [1, 2, 3]4
    // let a=[1,2,3,4]
    // let b=a.unshift(1);
    // console.log(a,b);//(5) [1, 1, 2, 3, 4] 5
    // let a=[1,2,3,4]
    // let b=a.shift();
    // console.log(a,b);//(3) [2, 3, 4] 1
    // let a=[1,2,3,4]
    // let b=a.splice(1,2);
    // console.log(a,b);//(2) [1, 4] (2) [2, 3]
    // let a=[1,2,3,4]
    // let b=a.splice(1,0,5,6);
    // console.log(a,b);//(6) [1, 5, 6, 2, 3, 4] []

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值