隨機 js

1.易混的幾種方式數組

  (1;slice  返回值爲截取的新字符串  接收參數(start,end) 特色:可接收負數  (-1表示從末尾處從後往前)  若是end沒有值  則斷定爲從start開始到最後,,, 取值特色爲[)    適用範圍:string arrayspa

    (2;  substring 返回值爲截取的新字符串  接收參數(start, end)  不能爲負數 不然爲0  若是start 大於 end的話  進行計算的時候 會交換start和end 的位置, 取值特色爲[) 適用範圍:stringcode

  (3;substr  返回值爲截取的新字符串  接收參數(start, length)   特色:可接收負數  (-1表示從末尾處從後往前) 適用範圍:string對象

 

  (4:splice 返回值爲截取的新數組 接收參數(start,length,array)前兩個可參照substr  第三個參數是要插入的數組項,,,就是前兩項代表要刪除的起始位置 長度  刪除以後 把第三個參數的數組插入到這個空缺 ,注意:這個方法會把原數組改變array 適用範圍:arrayblog

2. cancat : 用於鏈接兩個或多個數組。該方法不會改變現有的數組,而僅僅會返回被鏈接數組的一個副本字符串

3. Obj.assign() : 能夠把任意多個的源對象自身的可枚舉屬性拷貝給目標對象,而後返回目標對象,,,Object.assign({}, obj)同步

4.對象的淺copy和深複製  淺拷貝是將一個目標對象的地址拷貝到源對象裏面 而深拷貝是將目標對象裏面的值拷貝到原對象裏面   最直觀的區別是  對目標對象的操做 在淺拷貝里面是會進行同步的(由於僅僅是地址的複製,裏面的值實際上是一套),而深拷貝是不會的,由於跟目標對象已經滅有任何關係了string

 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.console

相關文章
相關標籤/搜索