关于es2015箭头函数的大括号代码块部分的一点理解
2016-08-08 15:30
483 查看
背景:在react中,遍历一个数组,生成一系列input插入dom
错误代码:
控制台源码:
这里只是创建了元素节点,并没有return返回dom节点,结果页面没有插入创造的dom节点
正确代码:(去掉大括号)
控制台源码:
这里有return,结果页面插入dom节点
不使用大括号,arrow function默认添加return。
而使用大括号,就只是一个代码块,so arrow function的return不会添加,需要的话必须手动添加
一般使用箭头函数时,代码块部分只有一条语句时,不使用大括号
等同于
如果有多条语句,使用大括号,同时使用return(否则没有返回值)
使用箭头函数返回对象:必须在对象外面加上括号,否则就只是个代码块,从而就不会返回对象了
等同于
错误代码:
{phones.map((phone, index) => { <div key={index}>{index}</div> })}
控制台源码:
phones.map(function (phone, index) { _react2.default.createElement( 'div', { key: index }, index ); })
这里只是创建了元素节点,并没有return返回dom节点,结果页面没有插入创造的dom节点
正确代码:(去掉大括号)
{phones.map((phone, index) => <div key={index}>{index}</div> )}
控制台源码:
phones.map(function (phone, index) { return _react2.default.createElement( 'div', { key: index }, index ); })
这里有return,结果页面插入dom节点
实践
不使用大括号,arrow function默认添加return。
而使用大括号,就只是一个代码块,so arrow function的return不会添加,需要的话必须手动添加
一般使用箭头函数时,代码块部分只有一条语句时,不使用大括号
var sum = (num1, num2) => num1 + num2 //同样的写法 var sum = (num1, num2) => { return num1 + num2 }
等同于
var sum = function(num1, num2) { return num1 + num2; };
如果有多条语句,使用大括号,同时使用return(否则没有返回值)
var sum = (n1, n2) => { console.log(n1); return n1 + n2 }
使用箭头函数返回对象:必须在对象外面加上括号,否则就只是个代码块,从而就不会返回对象了
var sum = () => ({name: 'a'})
等同于
var sum = function sum() { return { name: 'a' }; };
相关文章推荐
- 关于runtime的一点理解代码
- ES2015 中的箭头函数和词法 this
- 关于scanf()函数的一点理解
- 在线考试系统关于打印试卷的部分的一点代码
- 简单理解ECMAScript2015中的箭头函数新特性
- 关于C++中在函数中按值返回、临时对象、拷贝构造函数的一点理解
- 关于KMP算法中前缀函数(next函数)的一点个人理解
- 关于指针数组、数组指针、及函数指针和指向函数指针数组的指针的一点理解
- 关于C中函数传参的一点理解
- 关于代码链接时bss段的一点理解
- 关于箭头函数的理解摘记
- 关于BMP图片的一点理解,读取图象数据到数组
- 关于代码运行效率问题的一个总结和一点疑问
- 关于Ndis驱动的一点个人理解
- 关于accept函数需要注意的一点
- 关于反射的一点代码(今天没时间没有加注释,改天加上)
- [zt]关于左值"lvalue"和右值"rvalue"的一点理解
- 关于equals()和==操作的一点理解
- 关于反射的一点理解(一)
- 对C#下函数,委托,事件的一点理解