美文网首页
又看es6...

又看es6...

作者: shanshanfei | 来源:发表于2018-02-26 14:31 被阅读0次

    1.for循环的循环变量区和内容区是2个作用域

    for(let i=0;i<10;i++){
        let i = 'abc';
        console.log(i);//abc  此处的i与循环体中的i是2个作用域
    }
    

    2.let+const

    • 暂时性死区:只要定义了该变量,就不再受外部的影响
    • 不存在变量提升
    • 不能重复声明
    • const在声明的时候就要初始化,一经初始化就不能再改变
    • const实际是指向的内存地址不可变:如指向一个对象,对象的属性是可以修改的
    • let const声明的全局变量不再是顶层对象window的属性,之前的var function声明的全局变量仍是window的属性

    3.块级作用域
    4.Object.freeze({}) 冻结某个对象,该对象不能再添加、修改属性
    5.解构赋值:比较有用的就是对象、数组+函数参数的结构赋值

    • 对象的解构赋值:

      let { foo: baz } = { foo: 'aaa', bar: 'bbb' };//重新起名
      baz // "aaa"
      
    • 解构赋值还是不要用圆括号了吧,那么难受:总之就是解构赋值里 声明语句里与模式不能加圆括号
      6.字符的扩展:有必要扩展一下,参见:字符、字节、编码
      最有用的当算 模板字符串了`aaaa${变量或者表达式}bbbb`
      str.length返回的是字符的字节编码的长度,非字符串的长度。
      for循环是以字符的字节长度遍历,for...of循环以字符的长度进行遍历。
      字符串补全功能 可以用于时间的显示上,比如2:00点,显示成02:00,可以用:'2'.padStart(2, '0');
      7.函数的扩展
      最重要:箭头函数

    • 箭头函数不能做构造函数和generator函数

    • 箭头函数没有自己的this,它的this其实是外层作用域的this

    • 箭头函数的this是定义时的this,而不是使用时的this

    • 箭头函数内部不能使用arguments对象,但可以使用rest对象
      8.数组的扩展
      扩展运算符...

    • ...应用于数组,相当于将数组转为逗号分隔的值
      9.proxy 对目标对象进行筛选拦截,改变默认行为。如get、set、getPrototypeOf等近13种行为。
      Reflect与proxy功能类似,只不过是以函数的形式进行调用
      Reflect.get(target, keyName)
      10.对象的扩展:

    Object.is(a,b) 用来比较两个值严格相等(类似===)不会做类型转换,但是 :
    -0 === +0;//true
    Object.is(-0, +0);//false
    NaN === NaN;//false
    Object.is(NaN, NaN) // true
    
    
    让某个对象成为另外一个对象的原型,方法有:
    a. es5的方法 var obj = Object.create(prototypeObj);
    b. es6的方法 Object.setPrototype(obj, prototypeObj);
    c. obj.prototype = prototypeObj;
    

    11.Iterator接口

    调用Iterator接口的地方:
    
        数组、Set数据的结构赋值
        扩展运算符...
        for...of  Array.from()等
        yield * [2, 3, 4]
    
    1. Set & Map
    const a = new Set([1, 2]);
    a.size
    a.add(2);
    a.delete(2);
    a.has(4);
    a.clear();
    // 去除数组的重复成员
    [...new Set(array)]
    [...new Set('ababbc')].join('')
    // "abc"
    
    // Set 结构没有键名,只有键值(或者说键名和键值是同一个值),所以keys方法和values方法的行为完全一致
    // WeakSet 与Set类似,但是成员只能是对象。
    

    相关文章

      网友评论

          本文标题:又看es6...

          本文链接:https://www.haomeiwen.com/subject/oviexftx.html