箭头函数是一种声明函数的简洁语法,它与普通函数并无本质的区别,差异性更多体现在语法格式上。
<script>
// 箭头函数
let foo = () => {
console.log('^_^ 长相奇怪的函数...');
}
// 调用函数
foo();
// 更简洁的语法
let form = document.querySelector('form');
form.addEventListener('click', ev => ev.preventDefault());
</script>
箭头函数的简化写法:
// 1. 如果箭头函数的形参有1个,可以省略 ()
// let fn = x => {
// console.log(x * x)
// }
// fn(7)
// 2. 如果箭头函数的函数体,只有一行代码,则可以省略大括号。并且表示 return 这个函数体
// let fn = (x) => {
// return x * x
// }
// console.log(fn(8))
let fn = x => x * x // 默认,就表示 return x * x
console.log(fn(6))
// 如果函数需要返回一个 {} 空对象,则不能向下面那样
let fn = () => {} // 这样写的话,{}相当于是函数的大括号
let fn = () => ({}) // 这样写的话,相当于返回了 {} 空对象
总结:
- 箭头函数属于表达式函数,因此不存在函数提升,只能先定义,然后再使用
- 箭头函数只有一个参数时可以省略圆括号
()
- 箭头函数函数体只有一行代码时可以省略花括号
{}
,并自动做为返回值被返回 - 箭头函数中没有
arguments
,只能使用...
动态获取实参 - 涉及到this的使用,不建议用箭头函数
- 箭头函数,一般都是当做回调函数使用。
- 如果函数需要返回对象
{}
,则需要在{}
外面加一层()