ES6学习(五) -- 箭头函数

栏目: JavaScript · 发布时间: 6年前

内容简介:当想用箭头函数将参数返回一个对象时会发现报错了,但如果返回数组就不会报错,这是因为对象的{}被识别为function() {}中的大括号。所以若想使用箭头函数返回对象,可以使用圆括号:函数sum可读性差,繁琐易错,使用箭头函数怎么写呢?
  • 不用写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)
}
复制代码

报错:

ES6学习(五) -- 箭头函数

以上所述就是小编给大家介绍的《ES6学习(五) -- 箭头函数》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Python编程无师自通

Python编程无师自通

[美] 科里·奥尔索夫(Cory Althoff) / 宋秉金 / 人民邮电出版社 / 2019-1-1 / 59

畅销Python编程类入门书,美国亚马逊Kindle编程类排行榜榜一。 作者从文科毕业,通过自学编程转行为专业程序员,在硅谷工作多年后成功技术创业。本书不仅教读者如何使用Python语言编程,还会介绍其他书中所忽略的、编程初学者应该了解并掌握的其他所有知识点。 本书作者是一名自学成才的程序员,经过一年的自学,掌握了编程技能并在eBay找到了一份软件工程师的工作。本书是作者结合个人经验写......一起来看看 《Python编程无师自通》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具