箭头函数比函数表达式更简洁的一种写法使用
场景:箭头函数更适用于那些本来需要匿名函数的地方,写法更简单
<body>
<script>
// 箭头函数
// 1. 基本语法
// const fn = function () {
// console.log('我是函数表达式')
// }
// fn()
// const fn = () => {
// console.log('我是箭头函数')
// }
// fn()
// 2. 细节使用
// 2.1 如果只有一个形参则可以省略小括号,其余个数不能省略,如果没有参数则写空的小括号
// const sum = (x) => {
// console.log(x + x)
// }
// sum(2)
// const sum = x => {
// console.log(x + x)
// }
// sum(2)
// 2.2 如果函数体只有一句代码,则可以省略大括号,这句代码就是返回值(省略return)
// const sum = x => {
// return x + x
// }
// const sum = x => x + x
// console.log(sum(5))
// 2.3 如果返回的是一个对象,则需要用小括号把对象包裹起来
// const fn = function() {
// return {name: '佩奇'}
// }
// const fn = () => ({ name: '佩奇' })
// console.log(fn())
// 2.4 箭头函数里面没有 arguments,但是有剩余参数
const fn = (...other) => {
// console.log(arguments)
console.log(other)
}
fn(1, 2)
</script>
</body>
用法细节:
-
当箭头函数只有一个参数时,可以省略参数的小括号,其余个数不能省略(没有参数也需要写小括号)
-
当箭头函数的函数体只有一句代码 可以省略函数体大括号,这句代码就是返回值(可以不用写return)
-
如果返回的是个对象,则需要把对象用小括号包裹
-
箭头函数里面没有arguments,但是有剩余参数
总结:
-
箭头函数属于表达式函数,因此不存在函数提升
-
箭头函数只有一个参数时可以省略圆括号
()
-
箭头函数函数体只有一行代码时可以省略花括号
{}
,并自动做为返回值被返回 -
箭头函数中没有
arguments
,只能使用...
动态获取实参
箭头函数中的this
以前函数中的this指向是根据如何调用来确定的。简单理解就是this指向调用者
箭头函数本身没有this,它只会沿用上一层作用域的this