zoukankan      html  css  js  c++  java
  • ES6相关1

    let和const

    let和var的区别

    
    相同点:都是定义变量
    区别:
        1.是否有变量提升   var有变量提升,let没有
        2.是否能重复定义   var允许重复定义变量,let不允许重复定义
        3.是否有块级作用域  { }
            全局作用域:在函数外部定义的范围
            局部作用域:在函数内部定义的范围
            块级作用域:在{ }大括号中定义范围
        4.let 定义变量
          const 定义常量
    

    let和const的区别

    let 定义变量
    const 定义常量,是不能修改的,如果要修改,将常量定义成对象的形式,这样,就可以给对象中的属性进行修改
    

    symbol:是ES6新增的基本数据类型

    number,string,boolean,null,undefined,symbol(ES6新增)
    
    symbol:定义的值是唯一性
    
    两个symbol类型的值永远不等
    
    例如:
    var s1=Symbol()
    var s2=Symbol()
    s1=== s2
     false
    

    扩展运算符( ... )

    扩展运算符(也称展开操作符)两层作用:
    1.将数组转换成数据列表 [a,b,c,d]--->a,b,c,d
    例如:
    var arr1=[666,777,888]
    var arr2=['hello','vuejs']
    var result=[...arr1,...arr2]
    2.将数据列表转换成数组 a,b,c,d--->[a,b,c,d]
    3.展开对象
    var result={...obj1,...obj2}
    或
    result=Object.assign({},obj1,obj2)
    例如:
    function sum1(str,...args) {
      var result=0;
      for(var i=0;i<args.length;i++) {
        result+=args[i]
      }
       return result;
    }
    sum1('请输入',20,30,40)
    

    class类

    定义一个类:
    class Person {
       constructor(a,b) {
         //构造器
         this.属性=a
       }
      方法1() {}
      方法2() {}
      方法3() {}
    }
    继承一个类:
    class Child extends Person {
       constructor(a,b) {
         super()  //代表父类
         //构造器
         this.属性=a
       }
      方法1() {}
      方法2() {}
      方法3() {}
    }
    

    set和map:

    set:理解成是一个不重复的数组 
    
    将set类型的数据转换成数组:
    var s=new Set()
    Array.from(s)
    或[...s]
    
    var s=new Set()
    s.add()
    s.has()
    s.delete()
    s.size
    例如:数组去重:
    var arr=[3,34,23,2,2,23,23,3,34,34,34,45]
    [...new Set(arr)]
    map:理解成是一个对象,增强了对象key的数据类型,以前只能是字符串,现在对象的属性可以是做任意的数据类型!
    {
      "name":'jack',
      '10':'abc',
      'undefined':999
    }
    var m1=new Map()
    m1.set(属性名,值) //设置
    m1.get(属性名)  //获取
    m1.delete(属性名)  //删除
    //遍历Map类型获取所有值
    for(var [key,value] of m1) {
      console.log(key)
      console.log(value)
    }
    

    Promise:重点

    1.用于处理回调地狱的异步解决方案
    具体实现:
    function waiting() {
        return new Promise((resolve,reject)=>{    
                 setTimeout(function() {    
                    //console.log(2)
                   reject('哈哈')  
                },2000)      
        })
     }
    waiting().then(res=>{
       console.log(1)
       console.log('res:',res)
        console.log(3)
    }).catch(error=>{
       console.log('error:',error)
    })
    .then
    .catch
    .race
    .finally
    Promise.all([waiting(),waiting2(),waiting3()])
       .then(res=>{
       }).catch(res=>{
    })
    
  • 相关阅读:
    Consul注销实例
    sql优化基础篇
    linux下执行java类(运行java定时器)
    ExecutorService 的理解与使用
    精度计算的方法
    内部类详解
    接口的作用
    面向对象之继承和组合浅谈
    构造器前篇
    教师编制考试数据分析
  • 原文地址:https://www.cnblogs.com/mxnl/p/13610687.html
Copyright © 2011-2022 走看看