JavaScript中普通函数和箭头函数区别和联系

普通函数:function(  ){   }

箭头函数:( ) => {  }

箭头函数写法上简单,而且在参数只有一个的时候可以不添加小括号,后方只有一个表达式的时候可以不添加大括号

(item) => { return item + 1 }; //最初的箭头函数表达式,只有一个参数和一个表达式

item = > item + 1 // 简化后的表达式

不能为箭头函数命名,因为箭头函数是匿名的;普通函数既可以是函数表达式,也可以是函数声明

箭头函数没有this指向问题,一般是全局对象,被普通函数包含指向上一层,而普通函数要考虑到this指向不定的问题   //这也是设计箭头函数的主要原因之一,但是并不代表箭头函数没有this,此处还涉及到一个概念函数:函数作用域,我也会单独出一篇笔记

普通函数可以用new来创建构造函数的实例,而箭头函数不行;   //错误信息:Arrow is not a constructor

箭头函数没有arguments变量,而普通函数有,用来进行复用,实现更灵活的操作;

let arrow = () => arguments.length;   //错误信息:arguments is not defined

函数也没有super和new target绑定,而普通函数有;

普通函数和箭头函数都可以使用call,apply和bind方法,普通函数可以通过调用上述方法修改this值,而箭头函数不可以通过以上方法修改this值

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值