ES6基础

一、let ,const(const:常量,不能重新赋值)

  var:

    1、可以重复声明
    2、作用域:全局作用域 和 函数作用域

    3、会进行预解析

    console.log(a)   //undefined
       var a=1;

  let:

    1、同一作用域下不能重复声明

    2、作用域:全局作用域 和 块级作用域 {}

    3、不进行预解析

    console.log(a)   //Uncaught ReferenceError: Cannot access 'a' before initialization
       let a=1;

 

二、解构赋值

 let obj = {
        a:1,
        b:2
    }
    let a = obj.a;
    let b = obj.b;
    等价于 let {a,b} = obj;

 对象解构赋值名称需一一对应

 

 let arr = ['a','b','c'];
    let [e,f] = arr;

 数组解构赋值顺序需对应

 

  let a = 0;

  let b = 1;

  快速交换a,b的值: [a,b]=[b,a]

 

三、展开运算符

 let arr = ['a','b','c'];
    let arr2 = [1,2,...arr,3,4]
    console.log(arr2);     //[1, 2, "a", "b", "c", 3, 4]

 

四、set

 let arr = [1,2,5,6,4,6,1,2,1,2]
    let s = new Set(arr);
    console.log(s)    //Set(5) {1, 2, 5, 6, 4}   去重功能

 s.size   :个数,==》length

 s.clear()  清空所有值

 s.delete(具体需要删除的内容)

 s.add(具体需要加入的值)

 s.has(是否包含某个值)

 

五、Map

 let arr = [
        ['a',1],
        ['b',2],
        ['c',3],
    ]
    let m = new Map(arr);

 m.get('a');      //获取值:1

 m.set('d',4);    //设置值

 

 

 

 六、箭头函数

    let fn = (...agr)=>{
        console.log(agr);  //所有参数 [1,2,3]
        /*
            1、没有 arguments
            2、this指向:箭头函数本身没有this,指向其作用域所在this
            3、参数默认值: let fn = (a=10,b=20)=>{}
        */
    }
    fn(1,2,3);
    
    形参=>返回值   //单个参数可以不加()   单语句可以不加{}
    (形参,形参)=>{执行语句}   //多个参数需要加()
    ()=>{执行语句}    //没有参数也需要加()

 

七、数组新增方法

 Array.from(类数组)  把一个类数组转换成真正的数组
                                类数组:有下标,有length,
    Array.of(1,2,3,4)   把参数转数组
    Array.isArray()    检测是否是一个数组

 

 arr.find(callback) 查找数组中满足条件的第一个元素的值
     let arr = [1,2,3,4];
     let val = arr.find(item=>item>3);
     console.log(val)   //4

 arr.findIndex(callback) 查找数组中满足条件的第一个元素的索引
     let arr = [1,2,3,4];
     let val = arr.findIndex(item=>item>3);
     console.log(val)   //3

 arr.flat([depth])   多维数组扁平化,提取成一维数组
    arr.flatMap(callback)   数组扁平化,只能处理一层
    arr.fill(填充值,从第几位开始填充,截止到第几位)   填充
    arr.includes(value,从第几位开始检索) 是否包含某个值,返回值:true/false

 

八、字符串方法

 str.startsWith(value,从第几位开始查找)  是否是以某个字符串开始的  
    str.endsWith(value)  是否是以某个字符串结束的  
    str.repeat(重复多少次)


    模板字符串:

  ${} 插值表达式
        let name = 'tyl';
        let a = `hello <strong>${name}</strong>`;   可换行

 

九、对象新增方法

 let a=0;
    let b=1;

 let name = 'tyl';
    let obj = {
        a,
        b,

  c(){函数体},

  [name]:123

    }

  

 

  Object.assign(目标对象,obj,obj,...);  将后面的obj合并到目标对象

  Object.is(value1,value2)  比较两个值是否相等
     Object.is(NaN,NaN)    //true

 

 

 

 

 

  

 

    

posted @ 2020-01-08 13:13  somebody某某  阅读(205)  评论(0)    收藏  举报