前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于es2015箭头函数的大括号代码块部分的一点理解

关于es2015箭头函数的大括号代码块部分的一点理解

作者头像
小胖
发布2018-06-27 17:56:16
4560
发布2018-06-27 17:56:16
举报

背景:在react中,遍历一个数组,生成一系列input插入dom

错误代码:

代码语言:javascript
复制
{phones.map((phone, index) => {
    <div key={index}>{index}</div>
})}

控制台源码:

代码语言:javascript
复制
phones.map(function (phone, index) {
    _react2.default.createElement(
        'div',
        { key: index },
        index
    );
})

这里只是创建了元素节点,并没有return返回dom节点,结果页面没有插入创造的dom节点。

正确代码:(去掉大括号)

代码语言:javascript
复制
{phones.map((phone, index) => 
    <div key={index}>{index}</div>
)}

控制台源码:

代码语言:javascript
复制
phones.map(function (phone, index) {
    return _react2.default.createElement(
        'div',
        { key: index },
        index
    );
})

这里有return,结果页面插入dom节点。

实践:

不使用大括号,arrow function默认添加return。 而使用大括号,就只是一个代码块,so arrow function的return不会添加,需要的话必须手动添加。

一般使用箭头函数时,代码块部分只有一条语句时,不使用大括号:

代码语言:javascript
复制
var sum = (num1, num2) => num1 + num2
//同样的写法
var sum = (num1, num2) => { return num1 + num2 }

等同于

代码语言:javascript
复制
var sum = function(num1, num2) {
  return num1 + num2;
};

如果有多条语句,使用大括号,同时使用return(否则没有返回值):

代码语言:javascript
复制
var sum = (n1, n2) => {
  console.log(n1);
  return n1 + n2
}

使用箭头函数返回对象:必须在对象外面加上括号,否则就只是个代码块,从而就不会返回对象了:

代码语言:javascript
复制
var sum = () => ({name: 'a'})

等同于

代码语言:javascript
复制
var sum = function sum() {
  return { name: 'a' };
};
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.02.17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档