zoukankan      html  css  js  c++  java
  • 随机 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.

      

  • 相关阅读:
    (转)【web前端培训之前后端的配合(中)】继续昨日的故事
    ural(Timus) 1136. Parliament
    scau Josephus Problem
    ACMICPC Live Archive 6204 Poker End Games
    uva 10391 Compound Words
    ACMICPC Live Archive 3222 Joke with Turtles
    uva 10132 File Fragmentation
    uva 270 Lining Up
    【转】各种字符串哈希函数比较
    uva 10905 Children's Game
  • 原文地址:https://www.cnblogs.com/web-chuan/p/10999208.html
Copyright © 2011-2022 走看看