ES6 学习之箭头函数

发布于 2021-12-18 18:45:34 字数 2644 浏览 1049 评论 0

作用

函数目的指向性更强,可读性更好,简化代码,提升开发效率

特点

  • 不用写 function 关键字;
  • 只能作为函数使用不能 new,没有原型;
  • 参数不能重复命名;
  • 返回值可以不写 return,但有时需要配合 {};
  • 内部 arguments this 由定义时外围最接近一层的非箭头函数的 arguments 和 this 决定其值;

使用

常规使用

var sum = (a, b) => {
    return a + b;
}

console.log(sum(10, 20)) // 输出 30

不写 return

var sum = (a, b) => {
    a + b;
}

console.log(sum(10, 20)) // 输出 undefind

不写 return 且返回正常值

var sum = (a, b) => a + b;
console.log(sum(10, 20)) // 输出 30

箭头函数和对象

当想用箭头函数将参数返回一个对象时

let sum = (a, b) => {
    a: a,
    b: b
}
console.log(sum(10, 20))

会发现报错了,但如果返回数组就不会报错,这是因为对象的{}被识别为function() {}中的大括号。所以若想使用箭头函数返回对象,可以使用圆括号:

let sum = (a, b) => ({
    a: a,
    b: b
})
console.log(sum(10, 20)); // 输出 {a: 10, b: 20}

扩展小练习

function sum (x) {
    return function (y) {
        return function(z) {
            return x + y + z;
        }
    }
}
var sum1 = sum(1);
var sum2 = sum1(2);
console.log(sum2(3)); // 输出6

函数 sum 可读性差,繁琐易错,使用箭头函数怎么写呢?

第一步,将所有 function 换成 =>

let sum = (x) => {
    return (y) => {
        return (z) => {
            x + y + z;
        }
    }
}

第二步,去掉 return

let sum = (x) => (y) => (z) => x + y + z;

第三部,当箭头函数只有一个参数的时候,参数的括号可以去掉

let sum = x => y => z => x + y + z;
console.log(sum(1)(2)(3)); // 输出6

注意事项

箭头函数的参数不可以是相同的变量

var sum1 = function (a, a) {
    console.log(a)
}

不报错。

let sum = (x, x) => {
    console.log(x)
}

报错:

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

别再吹冷风

暂无简介

0 文章
0 评论
379 人气
更多

推荐作者

醉城メ夜风

文章 0 评论 0

远昼

文章 0 评论 0

平生欢

文章 0 评论 0

微凉

文章 0 评论 0

Honwey

文章 0 评论 0

qq_ikhFfg

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文