位置: IT常识 - 正文

js 箭头函数详解(jquery箭头函数)

编辑:rootadmin
js 箭头函数详解 1. 认识箭头函数

推荐整理分享js 箭头函数详解(jquery箭头函数),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:js 箭头函数详解方法,js箭头函数作用域,js 箭头函数详解代码,js 箭头函数详解代码,js箭头函数理解,js 箭头函数详解视频,js 箭头函数详解代码,js 箭头函数详解代码,内容如对您有帮助,希望把文章链接给更多的朋友!

es6 新增了使用胖箭头(=>)语法定义函数表达式的能力,很大程度上,箭头函数实例化的函数对象与正式的函数表达式创建的函数对象行为是相同的。任何可以使用函数表达式的地方,都可以使用箭头函数:

// 普通函数let sum = function(a, b) {return a + b;}// 箭头函数let sum1 = (a, b) => {return a + b;}

箭头函数简洁的语法对开发者来说是十分友好的,从上面的例子可以得知箭头函数的简单用法: (参数) => { 函数体 }

2. 箭头函数的一些用法1. 省略包含参数的小括号

如果只有一个参数,那也可以不用括号。只有没有参数,或者多个参数的情况下,才需要使用括号:

// 有效let sum = (x) => {return x;};// 有效let sum1 = x => {return x;};// 没有参数需要括号let sum2 = () => {return 1;};// 有多个参数需要括号let sum3 = (a, b) => {return a + b;};2. 省略包含函数体的大括号

箭头函数也可以不用大括号,但这样会改变函数的行为。使用大括号就说明包含“函数体”,可以在一个函数中包含多条语句,跟常规的函数一样。

省略大括号箭头后面就只能有一行代码;省略大括号会隐式返回这行代码的值;省略大括号不能写return。// 有效let sum = (a, b) => {return a + b;};// 有效let sum1 = (a, b) => a + b; // 相当于 return a + b;// 无效的写法let sum2 = (a, b) => return a + b;3. 嵌入函数js 箭头函数详解(jquery箭头函数)

箭头函数简洁的语法非常适合嵌入函数的场景:

let arr = [1, 2, 3, 4, 5];arr.map(val => val * 2); // [2, 4, 6, 8, 10]3. 箭头函数不能使用arguments

如果函数是使用箭头语法定义的,那么传给函数的参数将不能使用 arguments 关键字访问:

// 普通函数let sum = function() {return arguments.length;}sum(1, 2, 3); // 3// 箭头函数let sum1 = () => {return arguments.length;}sum1(1, 2); // Uncaught ReferenceError: arguments is not defined

虽然箭头函数中没有 arguments 对象,但可以在包装函数中把它提供给箭头函数:

function foo() {let bar = () => {console.log(arguments.length);}bar(); }foo(5, 5, 5); // 34. 箭头函数中this 指向let num = 11;const obj1 = {num: 22,fn1: function() {let num = 33;const obj2 = {num: 44,fn2: () => {console.log(this.num);}}obj2.fn2();}}obj1.fn1(); // 22

fn2中得到的结果为:22

原因箭头函数没有this,箭头函数的this是继承父执行上下文里面的this ,这里箭头函数的执行上下文是函数fn1(),所以它就继承了fn1()的this,obj1调用的fn1,所以fn1的this指向obj1, 所以obj1.num 为 22。 注意:简单对象(非函数)是没有执行上下文的!

如果fn1也是个箭头函数呢?

let num = 11; // const obj1 = {num: 22,fn1: () => {let num = 33;const obj2 = {num: 44,fn2: () => {console.log(this.num);}}obj2.fn2();}}obj1.fn1();

上述结果为undefined,因为fn1也是一个箭头函数,所以它就只能继续向上找也就是window了。

那为什么是undefined而不是11呢?

这里涉及到var和let

本文链接地址:https://www.jiuchutong.com/zhishi/300823.html 转载请保留说明!

上一篇:机器学习中的数学——距离定义(八):余弦距离(Cosine Distance)

下一篇:损失函数解读 之 Focal Loss(损失函数解读例题)

  • 息税前利润和销售利润
  • 我国现行的增值税属于什么
  • 全球第一家上市的互联网电商平台
  • 增值税纳税申报表在哪里打印
  • 增值税留抵注销时怎么办
  • 总公司如何分配股份
  • 企业清算所得税申报表清算期间
  • 机关单位工会经费的来源包括
  • 冲销暂估入账原材料的会计分录
  • 税前计提工资福利费用如何做会计核算?
  • 公司购买办公用品计入什么科目
  • 收入成本以前年度损益调整账务处理是怎样的?
  • 增值税发票单位可以不填吗
  • 总公司给分公司钱
  • 会计学堂值得购买吗
  • 个税纳税期数如何规定的 怎么选择
  • 收到未抵扣的红字发票
  • 应收账款未计提坏账,但是确实收不回来
  • 长期股权投资稀释
  • 社会保险费缴费凭据在哪查
  • 贴息收据税前扣除是什么
  • bios设置网卡开启
  • 后裔王者荣耀台词大全
  • 原材料退库怎么做凭证
  • 要求快速启动
  • 清理系统所有垃圾
  • 电脑任务栏在右边怎么调回下边
  • 新准则规定
  • modelist模型
  • php图片加文字水印
  • Laravel 5.5官方推荐的Nginx配置学习教程
  • 罗卡购物村
  • 捐赠所得属于什么会计科目
  • raisecom删除命令
  • 投资者投入固定资产的成本,应当按照投资合同
  • 研发费用算期间费用吗
  • 出差补贴要扣税吗
  • 防伪税控技术服务费订单号怎么查
  • 02-MyBatis-Plus
  • 企业收到的国外发票可以入账吗
  • 逐期增长量与累计增长量
  • 销售二手固定资产
  • 零申报年报需要哪些表格
  • 售后回租融资租赁会计处理
  • mysql命令行工具是什么
  • 白条该如何处理好
  • 为什么付款后没有记录
  • 新会计制度固定资产折旧账务处理
  • 进口产品没有发票怎么入账
  • 增值税进项税额抵扣期限最新
  • 员工报销的话费要缴纳个税吗?
  • 旅行社代订机票发票报销
  • 固定资产装修费用如果符合固定资产
  • mysql 5.7.28安装
  • windows许可证即将过期怎么办知乎
  • windows10已经阻止此软件
  • win1021年更新
  • windows7怎
  • ie9收藏夹
  • 微软7月补丁
  • Android通过HttpURLConnection获取JSON并进行UI更新
  • cocos2dx4.0教程
  • 图形学实验报告总结
  • linux中shell脚本编写
  • css中有序列表
  • javascript高级编程
  • e87移植
  • 原生js常用的方法
  • javascript运用
  • javascript数据类型有哪些
  • htmlcssjavascript入门经典pdf
  • Javascript字符串对象函数
  • android studio怎么清除缓存
  • 深入python3
  • 提高税务干部七种能力的意义
  • 网上发票分配
  • 累计预扣预缴税额
  • 北京市印花税减免政策
  • 创业板中签钱不能转出吗
  • 一般纳税人什么意思
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设