为了账号安全,请及时绑定邮箱和手机立即绑定

关于es6的写法,请问这种写法应该如何理解?

关于es6的写法,请问这种写法应该如何理解?

守着一只汪 2019-01-29 17:23:10
this.props.todos&&Array.isArray(this.props.todos)&&this.props.todos.map(()=>{                         <Todo {...todo}                               key={index}                             />})这种写法怎么理解?let a = 1,     b = 2,    c = 3; a&&b&&c(     console.log("c="+c) )我尝试用es6模拟为什么失败了项目的地址项目在redux02中
查看完整描述

1 回答

?
慕的地6264312

TA贡献1817条经验 获得超6个赞

老铁,不是用法有问题,是你对&&的理解有问题,这是一个短路操作。


举个栗子:


if(a&&b)

这里会先判断a是否为true,如果是true才会判断b,如果a是false就直接停止了,b根本就不会判断,这就是短路操作。意思是通过&&前边的变量判断是否让&&后边的变量继续进行。


你看的这个例子,会先判断this.props.todos这个变量是否存在;再执行Array.isArray(this.props.todos),判断这个变量是否是数组;如果存在并且是数组,才会执行this.props.todos.map。


map是数组的一个方法,所以这里是希望在使用前对数据进行判断,防止出现意外报错。


你自己写的这个,a、b、c都是变量,c不是方法啊。


查看完整回答
反对 回复 2019-02-02
  • 1 回答
  • 0 关注
  • 479 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号