箭头函数与结构赋值等

Posted 52580587zl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了箭头函数与结构赋值等相关的知识,希望对你有一定的参考价值。

箭头函数 = >

 ES6里可以用箭头来定义函数

  例:const text = (x)=>{return x + 4}

   如果箭头函数只有一个参数,那么小括号可以不写,多个参数必须写小括号

     例:const test = x => {x + 4}

   如果函数中只有一句话,而且这句话就是return,这个时候大括号以及return关键字都能省略。

     例:const text = x => x + 4

   如果返回值是一个对象,那么要加一对小括号避免歧义

      例:const test = (num)= >({price:num})

   箭头函数是不能new的,它的设计初衷就跟构造函数不太一样

    1.如果希望this指向当前对象,那么就用普通函数

    2.如果希望this指向外层对象,用箭头函数

    3.如果内层外层都要,用普通函数,this指内层,在外层声明一个变量把外层this存下来。比如const -this = this  -this指外层

 

解构赋值:把数组里的元素按顺序赋值

  如果解构的变量少于数组元素,那就只解构前几个元素。

      解构的变量多余数组元素,多余的变量是undefined

  例:

技术图片

 

 

 

     对象是无序的,没有length属性,对象解构是按照属性名来解构的,也就是说声明的变量要对应对象里的属性名,才能拿到属性值。 

    如果去解构一个对象里不纯在的属性,得到undefined

   例:

       技术图片

 

 

    解构赋值的逆用法:变量名和属性名一致才能简写  

   例:      

      技术图片

 

 

 

symbol类型:第6种基本类型

  例:var s1 = Symbol();

    var s2 = Symbol();

    var s3 = Symbol("abc");

    var s4 = Symbol("abc");

    s1不等于s2

    s3不等于s4

    Symbol函数会生成一个唯一的值可以理解为Symbol类型跟字符串是接近的 但每次生成唯一的值,也就是每次都不相等,至于它等于多少,并不重要 这对于一些字典变量,比较有用

 

 

SetMap结构

  Set集合是默认去重复的,但前提是两个添加的元素严格相等 所以5和"5"不相等,两个new出来的字符串不相等

    例:  let imgs = new Set();

        imgs.add(1);

        imgs.add(1);

        imgs.add(5);

       imgs.add("5");

       imgs.add(new String("abc"));

       imgs.add(new String("abc"));

      // 打印的结果: 1  5  ‘5‘  ‘abc‘  ‘abc‘

 Map集合,即映射

    let map = new Map();

    map.set("S230", "张三");

    map.set("S231", "李四");

    map.set("S232", "王五");

    获取某一个元素 map.get("s232"); //王五

    //循环遍历,配合解构赋值 for(let [key,value] of map){    console.log(key,value);  }

class的写法语法糖

 技术图片

 

以上是关于箭头函数与结构赋值等的主要内容,如果未能解决你的问题,请参考以下文章

将箭头函数转换为没有变量赋值的命名函数

ES6深入浅出-2 新版函数:箭头函数 2 视频-1.视频 箭头函数

关于箭头函数里的this

严格模式——let和const——箭头函数——解构赋值——字符串模板symbol——Set和Map——生成器函数

ES6语法~解构赋值箭头函数

ES6 箭头函数