JavaScript编程语言JavaScript箭头函数基础知识
创建函数还有另外一种非常简单的语法,并且这种方法通常比函数表达式更好。
它被称为"箭头函数",因为它看起来像这样: let func = (arg1, arg2, ..., argN) => expression;
这里创建了一个函数 func,它接受参数 arg1..argN,然后使用参数对右侧的 expression 求值并返回其结果。
换句话说,它是下面这段代码的更短的版本: let func = function(arg1, arg2, ..., argN) { return expression; };
让我们来看一个具体的例子: let sum = (a, b) => a + b; /* 这个箭头函数是下面这个函数的更短的版本: let sum = function(a, b) { return a + b; }; */ alert( sum(1, 2) ); // 3
可以看到 (a, b) => a + b 表示一个函数接受两个名为 a 和 b 的参数。在执行时,它将对表达式 a + b 求值,并返回计算结果。 如果我们只有一个参数,还可以省略掉参数外的圆括号,使代码更短。 例如: let double = n => n * 2; // 差不多等同于:let double = function(n) { return n * 2 } alert( double(3) ); // 6 如果没有参数,括号将是空的(但括号应该保留): let sayHi = () => alert("Hello!"); sayHi();
箭头函数可以像函数表达式一样使用。
例如,动态创建一个函数: let age = prompt("What is your age?", 18); let welcome = (age < 18) ? () => alert("Hello") : () => alert("Greetings!"); welcome();
一开始,箭头函数可能看起来并不熟悉,也不容易读懂,但一旦我们看习惯了之后,这种情况很快就会改变。
箭头函数对于简单的单行行为(action)来说非常方便,尤其是当我们懒得打太多字的时候。 多行的箭头函数
上面的例子从 => 的左侧获取参数,然后使用参数计算右侧表达式的值。
但有时我们需要更复杂一点的东西,比如多行的表达式或语句。这也是可以做到的,但是我们应该用花括号括起来。然后使用一个普通的 return 将需要返回的值进行返回。
就像这样: let sum = (a, b) => { // 花括号表示开始一个多行函数 let result = a + b; return result; // 如果我们使用了花括号,那么我们需要一个显式的 "return" }; alert( sum(1, 2) ); // 3
更多内容
在这里,我们赞扬了箭头函数的简洁性。但还不止这些!
箭头函数还有其他有趣的特性。
为了更深入地学习它们,我们首先需要了解一些 JavaScript 其他方面的知识,因此我们将在后面的 深入理解箭头函数 一章中再继续研究箭头函数。
现在,我们已经可以用箭头函数进行单行行为和回调了。 总结
对于一行代码的函数来说,箭头函数是相当方便的。它具体有两种: 不带花括号:(...args) => expression — 右侧是一个表达式:函数计算表达式并返回其结果。 带花括号:(...args) => { body } — 花括号允许我们在函数中编写多个语句,但是我们需要显式地 return 来返回一些内容。 任务用箭头函数重写
用箭头函数重写下面的函数表达式: function ask(question, yes, no) { if (confirm(question)) yes(); else no(); } ask( "Do you agree?", function() { alert("You agreed."); }, function() { alert("You canceled the execution."); } );
解决方案 function ask(question, yes, no) { if (confirm(question)) yes(); else no(); } ask( "Do you agree?", () => alert("You agreed."), () => alert("You canceled the execution.") );
是不是看起来精简多了?
急救包品牌Judy视觉形象设计Judy成立于2019年,并于今年推出,它是一款应急工具套件,其中包含您可能需要的自然灾害和家庭紧急情况所需的一切。今年早些时候,他们推出了由RedAntler设计的标识以及包装形
食品杂货品牌YEMA视觉形象设计YEMA成立于2019年,是墨西哥一家食品杂货品牌,以优质且简单的食材,可持续的生产方式生产基本的日常用品,并以具有竞争力的价格出售。早些时间,他们公布了一款由Anagrama设计
华为Mate20Pro降至退场价华为手机在余承东的带领之下,确实成长速度非常的快,已经超过了苹果成为世界第二大的智能手机厂商,但是在余承东的手上,华为手机也变得越来越加昂贵,很多人都觉得自己买不起华为最新的旗舰手
夹缝中的小米,能否上演王者归来?双十一的热潮刚刚结束,与往年不同的是,在各大品牌都在忙着发喜报的时候,小米方面却出奇的安静,而各大平台自己公布的手机销量排行榜上也没有小米或者红米机型的影子。往回说2019一整年的
华为Mate30Pro优缺点大PK作为华为年度旗舰,华为Mate30系列一发布就备受关注。作为第一批入手华为Mate30Pro的用户,在进行两天的深度体验以后,下面来说说华为Mate30Pro的优缺点。第一点优点,
千元竟然可以得到这台手机,买到就是赚到手机的市场竞争早已形成了一片红海,尤其是制造门槛较低的千元机更是层出不穷,广泛的机型虽然为消费者提供了更丰富的选择,但是林林总总的机型总令人眼花缭乱,对于追求极致性价比的普通消费者
后置五摄?最美华为P40渲染图来袭随着华为Mate30的正式发布,华为下一款即将发布的新旗舰手机将会是华为P40,近日发布的华为Mate30系列华为和P30系列都采用了后置四摄设计。那么下一款即将发布的旗舰机华为P
从内到外的猛,千元机中的小钢炮一说到千元机,很多朋友都没有太好的印象,很多厂商都会在千元机上阉割很多的功能,让使用体验变得非常糟糕。然而在今年年初的时候,有一个新入局到国内市场的realme品牌,却在千元机档位
为什么华为Mate30不用2K屏幕呢?如今的华为手机可以说是非常火的,许多人在购买手机的时候都会考虑购买一款华为手机。大家都知道去年的华为Mate20pro使用了一款2k的屏幕,要知道2k的屏幕比1080p的屏幕面看起
降价后的骁龙855才是最值得入手的吗?在这个阶段最不缺少的可以说就是极致性价比的手机了吧!而消费者的选择性真的是越来越多,国产手机的工艺设计,还有用户体验也是越来越走向了同质化,因此只有明确自己对手机的需求才能更好的买
2019年值得购买的四款手机随着这几年科技的快速发展,手机更新换代的频率简直太快了。很多人在买手机的时候都比较纠结,那么2019年最值得入手的几款手机有哪些呢?今天小编就来为大家盘点一下一OPPORenoAc