19-2-25(解构赋值,拖拽上传,上传)

(1.首先了解ES6新增了在函数传参时初始化参数的操作。ES6 允许为函数的参数设置默认值,即直接写在参数定义的后面。(PS:参数变量是函数内部默认声明的,所以不能重复用let等关键字声明)

有个小问题,在用到传参初始化的时候,函数参数处不可以有同名的参数。并且参数默认值不是传递的,是在每次调用的时候都会初始化计算,如果默认值是一个计算,那每次都会重新计算得到新的默认传参!

2.今日工程遇到拖拽上传需求,先贴代码:

拖拽部分

具体看代码,需要定义各种事件的事件监听,具体的commonUpload是个上传函数,会在下文贴出来,而saveUploadFile是用来做上传操作请求的。

3.单个文件上传

先做文件校验
文件上传

PS(在文件上传了以后需要清除input(file)的value,不然会导致连续上传同一文件浏览器会没有反应)

4.解构赋值

今天复习了解构赋值的概念:

先贴上MDN的解释:MDN结构赋值详解

按照我个人理解,结构复制就是向数组或者对象进行一个反向赋值,将数组或对象的指定的元素通过反向赋值,赋值到特定的简单变量中一共后续能更简单的调取,也是一种变量调取的优化方式吧。

例如arr=[1,2,3,4,5,6]

let [x,y,z]=arr

结果就是x=1,y=2,z=3

Assignment={a:1,b:2}

let {x,y}=Assignment

结果就x=1,y=2;

使用的话在交换值的时候就不用定义多个转存变量了,直接 let a=5,b=6;[a,b]=[b,a]就ok了

或者可以在重新赋属性名的时候用到:

有的时候返回的obj里name比较杂,就可以简单转存一下:

var obj={Assignment:1,Assignments:6}

这里只要let{Assignment:a,Assignments:b}=obj

就可以有a=1,b=6了。

还有在使用解构赋值的时候,如果直接{Assignment:a,Assignments:b}=obj这样是不行的,不使用var等赋值关键字的话就要在外面加一层括号:({Assignment:a,Assignments:b}=obj)这样才可以正常运行

你可能感兴趣的:(19-2-25(解构赋值,拖拽上传,上传))