美文网首页
19-2-25(解构赋值,拖拽上传,上传)

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

作者: Altair_c5df | 来源:发表于2019-03-13 17:09 被阅读0次

    (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(解构赋值,拖拽上传,上传)

          本文链接:https://www.haomeiwen.com/subject/mxzgyqtx.html