美文网首页
ES6 Features

ES6 Features

作者: baby熊_熊姐 | 来源:发表于2017-08-03 18:34 被阅读11次

    记录部分 ES6语法

    Map 和 Set

    Set

    Set 类似于数组,成员都是唯一的,

    const set = new Set([1, 1,3,4,2,3]) // Set {1,3,4,2}
    [...set] // [1,3,4,2]
    set.size // 4
    [...set.add(6)] // [1,3,4,2,6]
    set.delete(1) // true 
    set.has(6)  // true
    set.clear() // 清除全部成员
    Array.from(set) // 将set对象转换为数组
    

    Set 内部去重的比较,类似于 "===", 区别是 NaN 等于自身。
    Set 方法没有键名只有键值,set.keys === set.values
    set.entries() // [[v, v], [v, v], [v, v] ]

    WeakSet 只能放置对象,不可遍历,且引用不计入垃圾回收机制(一个值的引用次数不为0,垃圾回收则不会释放该引用内存)

    Map

    const map = new Map()
    map.set('foo', true).set('bar', false)
    map.size
    map.get('foo')
    map.has('foo')
    map.keys()
    map.valueskeys()
    map.entrieskeys()
    map.clear()
    

    rest 参数

    ES5: Array.prototype.slice.call(arguments)
    ES6: (...numbers) => number.sort() // rest 参数
    箭头函数

    • 箭头函数内部没有this, 指向的是包含块的this

    数组的扩展

    ES5: Math.max.apply(null, [14, 3, 77])
    ES6: Math.max(...[14, 3, 77])
    [...arr1, ...arr2]

    Array.from()
    用于将类数组对象和可遍历(iterable)对象转换为真正的数组
    Array.of()
    用于将一组值,转换为数组
    find() 找到某个数, 接收函数参数 value, index, arr
    findIndex() 找到某个数的序号
    fill() , 向某个数组填充某个值,指定起点和结束点
    entries()、keys()、values() 对键值对、键、值的遍历
    includes() 返回布尔值,检测数组中是否存在该值

    对象的扩展

    ES6允许直接写变量,属性名是变量名,属性值是变量值
    Object.is() 用于比较两个对象是否严格相等
    Object.assign() 用于对象的合并, 只拷贝自身属性,不拷贝继承属性
    var obj2 = Object.assign({}, obj1, obj3)

    let const

    1. 不存在变量提升,必须先定义再引用
    2. 在相同作用域中重复申明会报错
    3. 块级作用域

    箭头函数

    1. 简洁,简化回调函数
    2. this 固定化,总是指向定义时所在的对象,而普通函数内 this 指向 window
    3. 不可以当作构造函数,即不可以使用new 操作符
    4. 不可以使用 arguments 对象,可以用 rest 参数取代
    5. 不可以用yield命令

    相关文章

      网友评论

          本文标题:ES6 Features

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