使用してJS関数ES6矢印矢印機能(矢印機能)JS ES6矢印機能(矢印機能)

まず、文法

基本的な文法

(パラメータ1、パラメータ2、...、パラメータN)=> {}関数宣言
(パラメータ1、パラメータ2、...、パラメータN) => 式(単一)
 //は対応:(パラメータ1、パラメータ2、... 、パラメータN)=> {式を返す;} 

// 唯一のパラメータ、括弧はオプションである場合: 
(単一のパラメータ)=> {}関数宣言
、単一のパラメータ => {関数宣言} 

// パラメータなしこの関数は、括弧のペアとして記述する必要があります。
()=> {}関数宣言

高度な文法

// 括弧関数は、オブジェクト本体リテラル式を返す: 
パラメータ=> ({FOO:バー})

// サポート残りのパラメータとデフォルトパラメータ 
(パラメータ1、パラメータ2、... REST)=> {}関数宣言
(パラメータ1 =デフォルト値1、パラメータ2、...、パラメータNのデフォルト値N =)は=> {関数宣言は} 

// また、引数リストの解体がサポート 
させ、F =([A、B ] = [1、2]、{X :C = {X}:A + B})=> A + B + C; 
F();   // 6。

パラメータを持つ1.簡単な関数

VAR単一= A => 
シングル( 'こんにちは、世界')// "こんにちは、世界

2.括弧はプラス矢印前のパラメータを使用する必要はありません

ログ=()=> { 
    アラート( 'いいえPARAM' 
}

3.必要性は、例えば、2つの数値を括弧、コンマ間隔の間に複数のパラメータを使用します

VAR追加=(A、B)=> A + B 
追加( 3,8)// 11

4.関数の本体は、複数のステートメントは、括弧を使用する必要があります

VaRの追加=(A、B)=> {
     場合typeof演算 == '番号' && typeof演算の B == '個数が' ){
         返す + B 
    } {
         戻り 0 
    } 
}

中括弧は、コードブロックを占有するように解釈括弧ラップ5.戻りオブジェクトを、必要とします

VAR GETHASH = ARR => {
     // ... 
    リターン({ 
        名: 'ジャック' 
        年齢: 33 
    })
}

6.直接イベントハンドラとして

document.addEventListener('click', ev => {
    console.log(ev)
})

7. 作为数组排序回调

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. typeof运算符和普通的function一样

var func = a => a
console.log(typeof func); // "function"

2. instanceof也返回true,表明也是Function的实例

console.log(func instanceof Function); // true

3. this固定,不再善变

obj = {
    data: ['John Backus', 'John Hopcroft'],
    init: function() {
        document.onclick = ev => {
            alert(this.data) // ['John Backus', 'John Hopcroft']
        }
        // 非箭头函数
        // document.onclick = function(ev) {
        //     alert(this.data) // undefined
        // }
    }
}
obj.init()

4. 箭头函数不能用new

var Person = (name, age) => {
    this.name = name
    this.age = age
}
var p = new Person('John', 33) // error

5. 不能使用argument

var func = () => {
    console.log(arguments)
}
func(55) // Uncaught ReferenceError: arguments is not defined

 

 

博客搬运地址:

  1. MDN箭头函数
  2. ES6箭头函数(Arrow Functions)
  3. JS ES6中的箭头函数(Arrow Functions)使用

おすすめ

転載: www.cnblogs.com/clement-jiao/p/11073781.html