位置: 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(损失函数解读例题)

  • 预缴增值税需要预缴城建税吗
  • 增值税属于哪个部门
  • 公司注销前欠客户钱
  • 债务重组计入哪项科目
  • 9个点的发票跟6个点区别
  • 房地产企业消防设施计入什么科目
  • 工会经费计入现金流量表哪项
  • 外贸企业当月没交税
  • 找税局代开的金额在3万以下是否需交税
  • 赠品的会计核算内容
  • 被财政收回的财政经费如何做财务处理?
  • 拍卖土地支付的法律依据
  • 居民企业分红免征企业所得税分录
  • 税控盘维护费是普票能全额抵扣吗
  • 一般纳税人地税怎么收费
  • 应交税费应交增值税减免税款
  • 个税申报与社保申报一定是一致的么
  • 无形资产怎么核算成本
  • 纯粮食白酒广告语
  • 企业所得税税率2.5% 5% 25%
  • 关于设备延期交付说明
  • 社保会计科目怎么做账
  • 深度学习中模型计算量(FLOPs)和参数量(Params)的理解以及四种计算方法总结
  • web服务器做什么用的
  • 固定资产计算折旧时用扣除减值吗
  • 政府会计公共基础设施的概念和内容
  • Vant UI 中 van-collapse 下拉折叠面板如何默认展开第一项
  • phpstorm配置php环境 mac os
  • 数据库管理框架
  • php图文教程
  • but all failed
  • element级联动态加载
  • npm安装node指定版本
  • css添加边框阴影 立体效果
  • 事业单位营业执照
  • 资产减值损失的大幅度变动
  • 上月购进固定资产次月退货已开具红字发票如何入账
  • 城镇土地使用税优惠政策
  • 多付款退回怎样写说明
  • 驱动开发做得长久吗
  • 关联广告是什么意思
  • 劳务派遣业务如何开展
  • 微信平台的收入从哪里来
  • 个体户银行开户选择哪个银行好
  • 工商企业年报网上申报流程
  • sqlserver附加数据库语句
  • mysql数据库如何升级
  • 公司自有房产出租给员工如何处理
  • mysql错误日志在哪里
  • 印花税的征收方式有哪些
  • 商标注册费2000元记哪个科目
  • 当月红冲上月开具的增值税
  • 福利费列支的个税怎么算
  • 汇票与本票有何不同
  • 为别人开发票先收的税金怎么入帐?
  • 小规模减免附加税的会计处理
  • 美国支票上的收款人地址不对怎么办
  • 如何动态修改mysql的全局参数
  • 右下角小喇叭调不了声音
  • ubuntu拨号上网设置
  • subss
  • linux shell 常用命令大全
  • win8/10功能
  • win7蓝屏代码0x0000007e
  • win10怎么旋转屏幕
  • win8应用商店废了
  • JAVAscript操作word
  • shell脚本连接服务器
  • opengl怎么学
  • opengl超级宝典pdf
  • android源码分析实录
  • jquery keydown
  • python怎么爬
  • dom4j解析xml字符串步骤
  • jquery给按钮添加事件
  • 重庆税筹公司
  • 双定户如何网上申报
  • 新入职税务人员给总局的回信
  • 税务坚定理想信念心得体会
  • 业务竞赛经验分享
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设