• es6 拾遗


    1、数组

    for…of是支持 break、continue、return的,所以在功能上非常贴近原生的 for。

    2、箭头函数

    let test = {
              name: 'test',
              say: () => {
                console.log(this.name, this)
              }
            }
            console.log(test.say())// undefined

    因为箭头函数中对 this 的处理是定义时,this 的指向也就是 test 外层的所指向的 window,而 window 没有 name 属性,所以结果是 undefined。

    3、Set对NaN -0 +0 undefined处理

    let set = new Set()
    set.add(NaN).add(NaN).add(+0).add(-0).add(undefined).add(undefined)

     

     4、Reflect与Proxy

    (1)Reflect

    Reflect 是一个内置的对象,它提供拦截 JavaScript 操作的方法,这些方法与处理器对象的方法相同。Reflect不是一个函数对象,因此它是不可构造的。

    Reflect的所有属性和方法都是静态的(就像Math对象)。

    let o = {
        name: 'xiaoming',
        age: 20
    }
    
    let handler = {
        get(obj, key) {
            return Reflect.has(obj, key) ? obj[key] : ''
        },
        set(obj, key, value) {
            if (Reflect.has(obj,key)) {
                obj[key] = value
              }
        }
    }
    // o:用 Proxy 包装的目标对象
    // 通俗的讲第一个参数 target 就是用来代理的“对象”,被代理之后它是不能直接被访问的,而 handler 就是实现代理的过程。
    let p = new Proxy(o, handler)
    
    console.log(p.from)
    console.log(p.name)
    p.name='test'
    console.log(p.name)
    p.ss='2'
    console.log(p)

    5、模块化

    const name = 'hello'
            let addr = 'BeiJing City'
            var list = [1, 2 , 3]
            export {
              name as cname,
              addr as caddr
            }
            export default list
    
    // 批量导入
    import list, * as mod from A
            console.log(list);
            console.log(mod.cname);
            console.log(mod.caddr);
  • 相关阅读:
    Lucas 定理
    C语言II博客作业04
    C语言II博客作业03
    C语言II博客作业02
    C语言II博客作业01
    学期总结
    First project
    C语言I博客作业08
    C语言I博客作业07
    C语言I博客作业06
  • 原文地址:https://www.cnblogs.com/mengfangui/p/12316624.html
Copyright © 2020-2023  润新知