JS 二

  • 常用 ES2015(简称:ES6)

  • let和const:

  1. let:定义变量
        * let和var的区别
        * 1.var可以重复定义,let不可以重复定义
        * 2. var有变量提升,let没有变量提升 (也可以叫预解析)
        * 3. var没有块级作用域,let有块级作用域
        */

  1. const :定义常量,即值不会改变的量

特点:const 定义常量时必须赋值

适用场景:引入一些npm包,或者定义项目中固定不变的值

面试官会问:如何改变const定义的值???

** 可以通过给const定义一个对象,那对象中的属性是可以改变值的 **

   例如:

   const obj = {
        name: 'alice',
        age:20
     }

     obj.name='jack'
  • 箭头函数
    * 面试时:箭头函数与普通函数区别?
    * 1.语法区别
    * 2. this不同:普通函数this永远指向运行时调用的this,谁调用指向谁,
    * 但箭头函数没有自己this,指定父级有function的this,但如果父级没有function继续往上找,直接找到全局的window
    * 3. 是否有arguments:普通函数是有arguments,箭头函数没有
    * 4. 是否能实例化 ,普通函数可以实例化,箭头函数不行

  • 解构赋值:

    可以对相同结构的类型进行值的提取,通常对数组或对象处理

    //数组的解构 var arr = ['hello', 'vue.js']

     var [a, b] = arr;
    
    //对象的解构
    var obj = {
       name: 'alice',
       age: 20,
       address:'北京'
    }
    var { name, address } = obj(
    
  • 模板字符串:用反引号来定义字符串

    格式:${获取变量或表达式}

    注: JS中定义字符串有三种格式:"",'',``

    mdn文档:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/template_strings

  • 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官文档:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Set

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

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

 优点:可以将将任意的数据类型的值当作对象的属性来使用,避免了传统的对象属性只有是字符串类型

map官方mdn文档:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Map

  • 展开运算符或rest: ...

...有两个作用:

  1. 将数组转换成数据列表 (展开操作) [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

  1. 将数据列表转换成数组(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)
posted @ 2020-05-11 20:32  Akby  阅读(113)  评论(0编辑  收藏  举报