ES6箭頭函數學習筆記

語法

  1. 具備一個參數的簡單函數javascript

    var single = a => a
    single('hello, world') // 'hello, world'
  2. 沒有參數的須要用在箭頭前加上小括號java

    var log = () => {
        alert('no param')
    }
  3. 多個參數須要用到小括號,參數間逗號間隔,例如兩個數字相加數組

    var add = (a, b) => a + b
    add(3, 8) // 11
  4. 函數體多條語句須要用到大括號app

    var add = (a, b) => {
        if (typeof a == 'number' && typeof b == 'number') {
            return a + b
        } else {
            return 0
        }
    }
  5. 返回對象時須要用小括號包起來,由於大括號被佔用解釋爲代碼塊了函數

    var getHash = arr => {
        // ...
        return ({
            name: 'Jack',
            age: 33
        })
    }
  6. 直接做爲事件handlerthis

    document.addEventListener('click', ev => {
        console.log(ev)
    })
  7. 做爲數組排序回調code

    var arr = [1, 9 , 2, 4, 3, 8].sort((a, b) => {
        if (a - b > 0 ) {
            return 1
        } else {
            return -1
        }
    })
    arr // [1, 2, 3, 4, 8, 9]

特性

  1. this:用function生成的函數會定義一個本身的this,而箭頭函數沒有本身的this,而是會和上一層的做用域共享this。
  2. apply & call:因爲箭頭函數已經綁定了this的值,即便使用apply或者call也不能只能起到傳參數的做用,並不能強行改變箭頭函數裏的this。
  3. arguments:普通函數裏arguments表明了調用時傳入的參數,可是箭頭函數否則,箭頭函數會把arguments當成一個普通的變量,順着做用域鏈由內而外地查詢。
  4. 不能被new:箭頭函數不能與new關鍵字一塊兒使用,會報錯。
  5. typeof運算符和普通的function同樣:對象

    var func = a => a
    console.log(typeof func); // "function"
  6. instanceof也返回true,代表也是Function的實例:排序

    console.log(func instanceof Function); // true
相關文章
相關標籤/搜索