(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)这样才可以正常运行
网友评论