js笔记05-箭头函数

x => x * x

相当于

function (x) {
    return x * x;
}

包含多条语句时,就不能省略{ ... }return

x => {
    if (x > 0) {
        return x * x;
    }
    else {
        return - x * x;
    }
}

多个参数,就用()

// 两个参数:
(x, y) => x * x + y * y

// 无参数:
() => 3.14

// 可变参数:
(x, y, ...rest) => {
    var i, sum = x + y;
    for (i=0; i

返回一个对象的话,就用()

// SyntaxError:
x => { foo: x } //因为和函数体的{ ... }有语法冲突

// ok:
x => ({ foo: x })

箭头函数完全修复了this的指向,this总是指向词法作用域,也就是外层调用者obj:

var obj = {
    birth: 1990,
    getAge: function () {
        var b = this.birth; // 1990
        var fn = () => new Date().getFullYear() - this.birth; // this指向obj对象
        return fn();
    }
};
obj.getAge(); // 25

不需要再

var that = this;

使用箭头函数简化排序时传入的函数:

'use strict'
var arr = [10, 20, 1, 2];
arr.sort((x, y) => {
     if (x < y) {
        return -1; //返回-1,则不需要交换
    }
    if (x > y) {
        return 1; //返回1,则需要交换
    }
    return 0;
});
console.log(arr); // [1, 2, 10, 20]

你可能感兴趣的:(js笔记05-箭头函数)