es6 入坑筆記(二)---函數擴展,箭頭函數,擴展運算符...

函數擴展

1.函數能夠有默認值 function demo( a = 10,b ){}javascript

2.函數能夠使用解構 java

function demo( { a = 0,b = 0 } = {} ){json

}數組

3.函數參數最後能夠多一個逗號函數

function demo(a,b,c,){this

}spa

code

1.與for等父子域不一樣對象

function(a){token

  let a=10;

}

會報錯,由於a已經被定義

2.

function move({x, y{ x0, y})

return [x, y]}

move({x3, y8});// [3, 8]

move({x3}); // [3, undefined]

move({}); // [undefined, undefined]

move(); // [0, 0]

undefined才會觸發函數參數的默認

 

 

 

箭頭函數

簡略形式:(參數)=>(return 的數據)

完整形式:

(參數)=>{

  語句

  return數據

}

做用:解決了this對象,當前this指向最頂層的申明對象

eg:

let json = {

  name:"zjj",

  demo:function(){

    setTimeout(()=>{

      alert(this.name);//這裏的this再也不是當前的運行時對象,而是最頂層的json

    }),200

  }

}

1.箭頭函數裏沒有arguments轉用...

//錯誤代碼

let show = function(){

  alert(arguments);

}

//正確代碼

let show = function(...args){

  alert(args);

}

2.箭頭函數不能做爲構造函數

 

 

 

擴展運算符

1....

1.散列的數據變成數組

demo(1,2,3,4);

function(a,b,...c){

  //a = 1;b = 2 , c = [3,4];

}

2.數組變成散列的數據

let arr1 = [1,2,3];//將arr1複製給另外一個數組

let arr2 = [...arr1];

坑:必須放在最後

 

2**3=8;

相關文章
相關標籤/搜索