ES6学习(五) -- 箭头函数
栏目: JavaScript · 发布时间: 5年前
内容简介:当想用箭头函数将参数返回一个对象时会发现报错了,但如果返回数组就不会报错,这是因为对象的{}被识别为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学习(五) -- 箭头函数》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。