快捷搜索:  汽车  科技

js箭头函数的用法(原来这就是JS箭头函数)

js箭头函数的用法(原来这就是JS箭头函数)所以,记得用圆括号把对象字面量包起来:var func = () => { foo: 1 }; // Calling func() returns undefined! var func = () => { foo: function() {} }; // SyntaxError: function statement requires a name 这是因为花括号({} )里面的代码被解析为一系列语句(即 foo 被认为是一个标签,而非对象字面量的组成部分)。箭头函数可以有一个“简写体”或常见的“块体”。在一个简写体中,只需要一个表达式,并附加一个隐式的返回值。在块体中,必须使用明确的return语句。var func = x => x * x; // 简写函数 省略return var func = (x y) => { return x y; };

不绑定Arguments

箭头函数不绑定Arguments 对象。因此,在本示例中,arguments只是引用了封闭作用域内的arguments:

js箭头函数的用法(原来这就是JS箭头函数)(1)

在大多数情况下,使用剩余参数是相较使用arguments对象的更好选择。

js箭头函数的用法(原来这就是JS箭头函数)(2)

像函数一样使用箭头函数

如上所述,箭头函数表达式对非方法函数是最合适的。让我们看看当我们试着把它们作为方法时发生了什么。

js箭头函数的用法(原来这就是JS箭头函数)(3)

箭头函数没有定义this绑定。另一个涉及Object.defineProperty()的示例:

js箭头函数的用法(原来这就是JS箭头函数)(4)

函数体

箭头函数可以有一个“简写体”或常见的“块体”。

在一个简写体中,只需要一个表达式,并附加一个隐式的返回值。在块体中,必须使用明确的return语句。

var func = x => x * x; // 简写函数 省略return var func = (x y) => { return x y; }; //常规编写 明确的返回值 返回对象字面量

记住用params => {object:literal}这种简单的语法返回对象字面量是行不通的。

var func = () => { foo: 1 }; // Calling func() returns undefined! var func = () => { foo: function() {} }; // SyntaxError: function statement requires a name

这是因为花括号({} )里面的代码被解析为一系列语句(即 foo 被认为是一个标签,而非对象字面量的组成部分)。

所以,记得用圆括号把对象字面量包起来:

var func = () => ({foo: 1}); 换行

箭头函数在参数和箭头之间不能换行。

var func = () => 1; // SyntaxError: expected expression got '=>' 解析顺序

虽然箭头函数中的箭头不是运算符,但箭头函数具有与常规函数不同的特殊运算符优先级解析规则。

js箭头函数的用法(原来这就是JS箭头函数)(5)

箭头函数也可以使用条件(三元)运算符:

var simple = a => a > 15 ? 15 : a; simple(16); // 15 simple(10); // 10 let max = (a b) => a > b ? a : b; 箭头函数也可以使用闭包:

js箭头函数的用法(原来这就是JS箭头函数)(6)

箭头函数递归

var fact = (x) => ( x==0 ? 1 : x*fact(x-1) ); fact(5); // 120

编程是一种修行,我愿与志同道合的朋友携手前行,一起探索有关编程的奥妙!

如果您在前端学习的过程中遇到难题,欢迎【关注】并【私信】我,大家一起交流解决!

文章推荐:

不一样的JS函数总结,适合前端初学者的JavaScript函数代码

JS函数声明和函数表达式的定义及其区别——超详讲解,值得拥有

带你一分钟理解JS闭包——通俗易懂

猜您喜欢: