美文网首页前端开发
ES6之箭头函数

ES6之箭头函数

作者: 前端王睿 | 来源:发表于2019-01-20 12:51 被阅读0次
思维导图

一、语法

(参数1, 参数2, ... 参数n) => { 函数体 }

我们来看看具体实例:

// 箭头函数
var add = (n1, n2) => {
   console.log(n1 + n2);
};

相当于:

// 普通函数
var add = function(n1, n2){
   console.log(n1 + n2);
};

1. 只有一个参数时可简写

如果函数参数只有一个的话,我们可以把参数外的括号省略,简写成下面这样:

// 箭头函数
var add = n1 => {
   console.log(n1 + 1);
};

相当于:

// 普通函数
var add = function(n1){
   console.log(n1 + 1);
};

看起来更简洁了是不是?

2. 只有一个返回语句时可简写

还有一种情况,当函数体中只有一条函数返回语句时,我们可以把函数体外的花括号及return关键字给省略,例如:

// 箭头函数
var add = n1 => n1 + 1;

相当于:

// 普通函数
var add = function(n1){
   return n1 + 1;
};

这应该是声明带参函数最简洁的方式了,可是太简洁有时候也可能会带来一些“麻烦”。我们来看看下面的例子:

// 普通函数
var foo = function(){
  return {
    text: '欢迎关注微信公众号前端微站!'
  };
};

如果按照上面最简洁的箭头函数写法,理论上应该可以写成下面这样:

// 箭头函数
var foo = () => {   // 错误写法,这里不是对象,而是函数体
   text: '欢迎关注微信公众号前端微站!'
};

可是这样写浏览器可不认账,它会把对象的花括号看成是函数体外的花括号来解析,这样函数执行就不会返回你想要的结果了。

那这样的问题如何解决呢?方法有以下两种:

① 保留花括号 + return的写法
以上问题产生无非是写法过于简介造成的,那么我们可以像下面这样写就没问题了。

var foo = () => {
  return {
    text: '欢迎关注微信公众号前端微站!'
  };
};

② 使用小括号包裹返回对象值

想继续偷懒还是有办法的,我们照样可以省略函数体花括号和关键字return,但是需要外面加个“保护层”,如下:

var foo = () => ({
  text: '欢迎关注微信公众号前端微站!'
});

二、特点

虽说箭头函数是普通函数的简洁写法,但是它还是有自己的独特个性的,实际使用中还需特别留意它们之间的区别。

1. 无arguments对象

相关文章

  • ES6箭头函数简介

    @(JS技巧)[ES6|箭头函数] ES6箭头函数(Arrow Functions) ES6可以使用“箭头”(=>...

  • es6全家桶(二)—— 箭头函数

    es6全家桶(二)—— rest参数、箭头函数 箭头函数 ES6 允许使用“箭头”(=>)定义函数。 var f ...

  • es6、js、css、jquery、vue以及程序设计 知识点总

    es6 列举常用的es6特性。 箭头函数this的指向。 eg:箭头函数的特性 箭头函数内部没有construc...

  • 29.JavaScript-箭头函数

    1.什么是箭头函数? 箭头函数是ES6中新增的一种定义函数的格式目的:就是为了简化定义函数的代码 2. 在ES6之...

  • 箭头函数

    ES6允许使用“箭头”(==>)定义函数。 箭头函数 等同于

  • 学习 ES 6 箭头函数

    箭头函数的用法 ES6 允许使用“箭头”(=>)定义函数。 箭头函数的一个用处是简化回调函数。 箭头函数 this...

  • JavaScript箭头函数

    ES6新语法箭头函数 箭头函数是ES6新语法,因为语法简单、可读性好,所以使用的也很多。箭头函数也是匿名函数,区别...

  • 关于ES6箭头this的指向问题

    ES6 允许使用 “ 箭头 ” (=>)定义函数。 箭头函数 填 坑。 this的指向是 向上查找 非箭头函数的...

  • ES6箭头函数(Arrow Functions)

    箭头函数是什么?(What) 箭头函数 (Arrow Functions)也称“胖箭头函数”,是ES6全新的特性。...

  • ES6之箭头函数【整理】

    [面试专题]ES6之箭头函数详解 https://segmentfault.com/a/1190000010914...

网友评论

    本文标题:ES6之箭头函数

    本文链接:https://www.haomeiwen.com/subject/grcilqtx.html