ES6 ---- 函數

  • 函數參數的默認值
function log(x, y = 'World') {
  console.log(x, y);
}
log('Hello') // Hello World
log('Hello', 'China') // Hello China
log('Hello', '') // Hello
//如果參數的默認值是變量,那么每次都會重新計算默認值表達式
let x = 99;
function foo(p = x + 1) {
  console.log(p);           
}
foo() //100
x=100
foo() //101
  • 與解構賦值配合使用
function foo({x, y = 5}) {
  console.log(x, y);
}
foo({}) // undefined, 5
foo({x: 1}) // 1, 5
foo({x: 1, y: 2}) // 1, 2
foo() // TypeError: Cannot read property 'x' of undefined
  • rest參數
//rest參數必須放在最后
function add(a,...values) {
  let sum = a;
  for (var val of values) {
    sum += val;
  }
  return sum;
}
add(2, 5, 3) // 10
  • 箭頭函數
var f = () => 5;
// 等同于
var f = function () { return 5 };
  • 使用箭頭函數的注意點
  1. 函數體內的this對象,是定義生效時所在的對象,而不是使用時所在的對象
  2. 不可以當做構造函數
  3. 不可以使用arguments對象,可以使用rest代替
  4. 不可以使用yield命令
function foo() {
  return () => {
    return () => {
      return () => {
        console.log('id:', this.id);
      };
    };
  };
}
//在此時定義生效,this則指向所在對象
var f = foo.call({id: 1});
var t1 = f.call({id: 2})()(); // id: 1
var t2 = f().call({id: 3})(); // id: 1
var t3 = f()().call({id: 4}); // id: 1
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1.函數參數的默認值 (1).基本用法 在ES6之前,不能直接為函數的參數指定默認值,只能采用變通的方法。
    趙然228閱讀 708評論 0 0
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,993評論 19 139
  • ES6函數的擴展 1.函數默認值 定義:ES6允許為函數設定默認值,即直接寫在參數定義的后面 示例function...
    lijaha閱讀 425評論 0 0
  • 函數參數的默認值 基本用法 在ES6之前,不能直接為函數的參數指定默認值,只能采用變通的方法。 上面代碼檢查函數l...
    呼呼哥閱讀 3,476評論 0 1
  • 《ECMAScript6 入門》阮一峰 讀書筆記 let和constlet聲明的變量僅在塊級作用域內有效,var聲...
    親愛的孟良閱讀 746評論 1 2