箭头函数简介

目的:引入箭头函数是更简短的函数写法并且不绑定this,箭头函数的语法比函数表达式更简洁

一、基本语法:

const fn = () => {
    console.log('我是箭头函数')
}
fn()

 const fn = (x) => {
     console.log(x)
 }
 fn(1)

//1.只有1个形参,可省略小括号,其他情况不能省略小括号
 const fn = x => {
      console.log(x)
  }
  fn(1)

//2.只有一行代码的时候,可以省略大括号
  const fn = x => console.log(x)
  fn(1)

//3.只有一行代码的时候,可以省略return
 const fn = x => x + x
 console.log(fn(1))

//4.箭头函数可以直接返回一个对象
const fn = (uname) =>({name:uname})
fn('刘德华')

更简洁的语法:

//阻止表单的默认提交事件    
//ev事件对象
const form = document.querySelector('form')
form.addEventListener('click',ev => ev.preventDefault())

加括号的函数体返回对象字面量表达式

const fn1 = uname => ({uname:uname})
console.log(fn1('pink'))

小结:
1.箭头函数属于表达式函数,因此不存在函数提升
2.箭头函数只有一个参数时可以省略圆括号()
3.箭头函数函数体只有一行代码时可以省略花括号{},并自动作为返回值被返回
4.加括号的函数体返回对象字面量表达式

二、箭头函数参数

1.普通函数有arguments动态参数
2.箭头函数没有arguments动态参数,但是有剩余参数…args

const getSum = (...arr)=>{
   let sum = 0
   for(let i=0;i<arr.length;i++){
     sum += arr[i]
   }
   return sum
}
const result = getSum(2,3)
console.log(result)

三、箭头函数this

箭头函数的this,是上一层作用域的this指向

 const fn = ()=>{
   console.log(this)//window
 }
 fn()

对象方法箭头函数this

const obj = {
    uname:'pink',
    sayHi:()=>{
        console.log(this)//this指向谁?
        //看上一级this作用域  window
    }
}
obj.sayHi()


const obj1 = {
    uname:'pink',
    sayHi:function(){
        console.log(this)//obj1
        let i=10
        const count = ()=>{
            console.log(this)//obj1
        }
        count()
    }
}
obj1.sayHi()

普通函数和箭头函数

//箭头函数  此时this指向了window
btn.addEventListener('click',() => {
    console.log(this)//window
})

//普通函数,此时this指向了DOM对象
btn.addEventListener('click',function(){
    console.log(this)//btn
})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值