• 随机 js


    1.易混的几种方式

      (1;slice  返回值为截取的新字符串  接收参数(start,end) 特点:可接收负数  (-1表示从末尾处从后往前)  如果end没有值  则判定为从start开始到最后,,, 取值特点为[)    适用范围:string array

        (2;  substring 返回值为截取的新字符串  接收参数(start, end)  不能为负数 否则为0  如果start 大于 end的话  进行计算的时候 会交换start和end 的位置, 取值特点为[) 适用范围:string

      (3;substr  返回值为截取的新字符串  接收参数(start, length)   特点:可接收负数  (-1表示从末尾处从后往前) 适用范围:string

      (4:splice 返回值为截取的新数组 接收参数(start,length,array)前两个可参照substr  第三个参数是要插入的数组项,,,就是前两项表明要删除的起始位置 长度  删除之后 把第三个参数的数组插入到这个空缺 ,注意:这个方法会把原数组改变array 适用范围:array

    2. cancat : 用于连接两个或多个数组。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本

    3. Obj.assign() : 可以把任意多个的源对象自身的可枚举属性拷贝给目标对象,然后返回目标对象,,,Object.assign({}, obj)

    4.对象的浅copy和深复制  浅拷贝是将一个目标对象的地址拷贝到源对象里面 而深拷贝是将目标对象里面的值拷贝到原对象里面   最直观的区别是  对目标对象的操作 在浅拷贝里面是会进行同步的(因为仅仅是地址的复制,里面的值其实是一套),而深拷贝是不会的,因为跟目标对象已经灭有任何关系了

     1 //浅复制
     2 var obj1={'a':1};
     3 var obj2={'b':{'b1':22,'b2':33}};
     4 
     5 $.extend(obj1, obj2);   //obj1拷贝了obj2的属性
     6 
     7 console.log(obj1)  // {'a':1,'b'{'b1':22,'b2':33}}
     8 console.log(obj1.b.b1)  // 22
     9 
    10 obj2.b.b1=44;   //obj2重新赋值
    11 console.log(obj1.b.b1)  // 44  obj1.b仅拷贝了对象的指引,所以受原obj2的影响
    12 
    13 //深复制
    14 
    15 var obj1={'a':1};
    16 var obj2={'b':{'b1':22,'b2':33}};
    17 
    18 $.extend(true,obj1, obj2);   //第一个参数设为true表示深复制
    19 
    20 console.log(obj1)  // {'a':1,'b'{'b1':22,'b2':33}}
    21 console.log(obj1.b.b1)  // 22
    22 
    23 obj2.b.b1=44;   //obj2重新赋值
    24 console.log(obj1.b.b1)  // 22 obj1拷贝了obj2的所有属性以及值,并不受obj2的影响

    5.

      

  • 相关阅读:
    查看本机安装了哪些.Net Framework版本的方法
    tomcat启动超时, Server Tomcat v6.0 Server at localhost was unable to start within 45 seconds...
    设置PL/SQL Developer 字符集
    JDK安装与环境变量配置
    function 与 => 的区别
    如何使用tomcat,使用域名直接访问javaweb项目首页
    Spring整合Struts2
    Oracle to_char函数的使用方法
    PLSQL 误删表恢复操作
    Python可视化动态图表,基于Python环境,使用jupyter notebook编辑ipynb文件,基于pyecharts生成Sankey的桑基图HTML制作
  • 原文地址:https://www.cnblogs.com/web-chuan/p/10999208.html
Copyright © 2020-2023  润新知