工作日报_9

225 阅读2分钟

2020年5月11日 星期一

今天主要复习了js、ES6的知识,ES是由Ecma组织下的TC39委员会制定的,我们常用的ES2015(简称:ES6)。

    github:es6源码    https://github.com/tc39/ecma262

let const var区别

    let 只在let命令所在的代码块内({})有效,变量;
    const 只在let命令所在的代码块内({})有效,常量;
    var 无作用域,全局,变量,可先使用,后声明。

箭头函数

    箭头函数的this指向规则:
        头函数没有prototype(原型),所以箭头函数本身没有this
        let a = () =>{};
        console.log(a.prototype); // undefined
使用箭头函数,可以让我们的回调函数特别的简洁。

解构赋值:

    可以对相同结构的类型进行值的提取,通常对数组或对象处理
    //数组的解构 var arr = ['hello', 'vue.js']

    var [a, b] = arr;

    //对象的解构
    var obj = {
            name: 'alice',
            age: 20,
            address:'北京'
    }
    var { name, address } = obj

set和map:

set:可以理解成是不重复的数组

add:添加一个值 delete:删除一个值 clear:删除所有值 通过for of 来遍历set数据结构 如何通过set可实现数组去重?

 var arr=[3,4,5,2,2,3,5,6,3,5,65,46,34,23,2]

   Array.from(new Set(arr))

   或[...new Set(arr)]

set和数组的互转:

  1. 数组转换成set:new Set(数组)

  2. set转换成数组:Array.from(set类型的变量) set官文档:developer.mozilla.org/zh-CN/docs/…

map:可以理解成是一个对象

注意:注意这里的map是一个构造函数,不是数组中的map

优点:可以将将任意的数据类型的值当作对象的属性来使用,避免了传统的对象属性只有是字符串类型 map官方mdn文档:developer.mozilla.org/zh-CN/docs/…

展开运算符或rest: ... ...有两个作用:

将数组转换成数据列表 (展开操作) [3,4,5]=>3,4,5 例如:

  //实现合并两个数组  

  var arr1=[3,4,5]

  var arr2=[6,7,8]

  var result=[...arr1,...arr2]      4,5,6,7,8

将数据列表转换成数组(rest操作) 4,5,6,7,8 => [ 4,5,6,7,8]

   function sum(...test) {
        var result=0;

        for(var i=0;i<test.length;i++) {
        result+=test[i]
        }  

        return result;  
  }

  sum(3,4,4,5,5)