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