記錄一下ES6擴展運算符(三點運算符)...的用法

該記錄源於segmentfaul網友的評論,特地感謝!html

 ...運算符用於操做數組,有兩種層面數組

1. 第一個叫作 展開運算符(spread operator),做用是和字面意思同樣,就是把東西展開。能夠用在array和object上都行。
好比:spa

 

 
  1. let a = [1,2,3];  
  2. let b = [0, ...a, 4]; // [0,1,2,3,4]  
  3.   
  4. let obj = { a: 1, b: 2 };  
  5. let obj2 = { ...obj, c: 3 }; // { a:1, b:2, c:3 }  
  6. let obj3 = { ...obj, a: 3 }; // { a:3, b:2 }  


2. 第二個,第三個叫作 剩餘操做符(rest operator),是解構的一種,意思就是把剩餘的東西放到一個array裏面賦值給它。通常只針對array的解構,其餘的沒見過。。。
好比: .net

 
  1. let a = [1,2,3];  
  2. let [b, ...c] = a;  
  3. b; // 1  
  4. c; // [2,3]  
  5.   
  6. // 也能夠  
  7. let a = [1,2,3];  
  8. let [b, ...[c,d,e]] = a;  
  9. b; // 1  
  10. c; // 2  
  11. d; // 3  
  12. e; // undefined  
  13.   
  14. // 也能夠  
  15. function test(a, ...rest){  
  16.   console.log(a); // 1  
  17.   console.log(rest); // [2,3]  
  18. }  
  19.   
  20. test(1,2,3)  

 

還有相似的rest

    1. let array = [1, 2, 3, 4, 5];  
    2. const { x, y, ...z } = array;  
    3. // 其中z=[3, 4, 5],注意若是因爲array的length不足以完成析構,則會致使z爲[]  
    4. 對象:  
    5. let obj = { name: 'zhangsan', age: 30, city: 'shenzhen' };  
    6. const {name, ...others} = obj;  
    7. console.log(name); // 'zhangsan'  
    8. console.log(others); // {age: 30, city: 'shenzhen'}  
    9. 轉:https://blog.csdn.net/chauncywu/article/details/73060918
相關文章
相關標籤/搜索