变量声明不要用var代替const和let,而是用const和let分别表示常量和变量。与var的函数作用域不同,const和let都是块作用域。常数延迟=1000;让计数=0;计数=计数+1;模板字符串模板字符串提供了另一种进行字符串组合的方法。const用户='世界';console.log(`你好${user}`);//helloworld//multi-lineconstcontent=`你好${firstName},感谢您订购${qty}张${event}的门票。`;默认参数functionlogActivity(activity='skiing'){console.log(活动);}logActivity();//滑雪箭头函数函数的快捷键,不需要通过function关键字创建函数,也可以省略return关键字。同时箭头函数也会继承当前上下文的this关键字。例如:[1,2,3].map(x=>x+1);//[2,3,4]等同于:[1,2,3].map((function(x){returnx+1;}).bind(this));模块的Import和Export用于导入模块,export用于导出模块。例如://Importallimportdvafrom'dva';//Importpartimport{connect}from'dva';import{Link,Route}from'dva/router';//全部导入并作为github对象使用import*asgithubfrom'./services/github';//exportdefaultexportdefaultApp;//部分导出,需要从'./file'导入{App};importexportclassAppextendComponent{};destructorassignmentdestructorassignment让我们从对象或数组中获取一些数据并将其存储为变量。//Objectconstuser={name:'guanguan',age:2};const{姓名,年龄}=用户;console.log(`${name}:${age}`);//guanguan:2//数组constarr=[1,2];const[foo,bar]=arr;控制台日志(富);//1我们也可以解构传入的函数参数。constadd=(state,{payload})=>{returnstate.concat(payload);};您还可以在析构时配置别名以使代码更语义化。constadd=(state,{payload:todo})=>{returnstate.concat(todo);};Objectliteralimprovement这是解构的逆向操作,用于重组一个Object。constname='朵朵';常量年龄=8;const用户={姓名,年龄};//{name:'duoduo',age:8}定义对象方法时,function关键字也可以省略。app.model({reducers:{add(){}//与add:function(){}}相同,effects:{*addRemote(){}//与addRemote:function*(){}},});SpreadOperatorSpreadOperator是3个点...并且可以以多种不同的方式使用。可用于组装数组。consttodos=['学习dva'];[...todos,'学习antd'];//['Learndva','Learnantd']也可以用来获取数组的一些项。constarr=['a','b','c'];const[first,...rest]=arr;re??st;//['b','c']//使用ignoreconst[first,,...rest]=arr;re??st;//['c']也可以将函数参数收集为数组。功能方向(第一,...休息){console.log(休息);}方向('a','b','c');//['b','c'];而不是申请。functionfoo(x,y,z){}constargs=[1,2,3];//下面两句效果相同foo.apply(null,args);foo(...args);对于Object,用于组合成新的对象。(ES2017stage-2proposal)constfoo={a:1,b:2,};constbar={b:3,c:2,};常量d=4;constret={...foo,...酒吧,d};//{a:1,b:3,c:2,d:4}此外,SpreadOperator还可以用于扩展JSX中的props,详见Spread属性。PromisesPromises用于更优雅地处理异步请求。比如发起一个异步请求:fetch('/api/todos').then(res=>res.json()).then(data=>({data})).catch(err=>({err}));定义了一个Promise。constdelay=(timeout)=>{returnnewPromise(resolve=>{setTimeout(resolve,timeout);});};delay(1000).then(_=>{console.log('executed');});
