• 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);
  • 相关阅读:
    MySQL主从数据库同步延迟问题解决(转)
    Python2.6升级Python2.7
    Socket网络编程
    Python 面向对象进阶
    Python类基础知识(面向对象基础)
    shell脚本中出现^M
    Centos6下Python3的编译安装
    Python成长之路(常用模块学习)
    SVN使用总结
    xshell锁屏
  • 原文地址:https://www.cnblogs.com/mengfangui/p/12316624.html
Copyright © 2020-2023  润新知