(JS)

作者: 扶不起的蝌蚪 | 来源:发表于2020-10-22 23:37 被阅读0次

    ES6


    letconstvar的区别

    • let和const声明变量不存在变量提升
    • let和const不能重复声明变量,如果重复声明会报错
    • 用let和const在全局声明变量不会给window增加属性
    • let和const出现在代码块中,会把代码块(字面量声明对象除外)变成块级作用域,并且出现暂时性死区

    class类

    ES6提供了更接近传统语言的写法,引入了Class(类)这个概念,作为对象的模板。通过class关键字,可以定义类。基本上,ES6的class可以看作只是一个语法糖,它的绝大部分功能,ES5都可以做到,新的class写法只是让对象原型的写法更加清晰、更像面向对象编程的语法而已

    importexport

    为了实现在运行中加载模块,引入了import()函数,实现了动态加载。

    import('./myModule.js')
    .then(({export1, export2}) => {
      // ...
    });
    
    • import()和import主要区别为前者是动态加载。
    • import()返回一个Promise对象,import()加载模块成功以后,这个模块会作为一个对象,当作then方法的参数。
    • import()类似于Node的require方法,区别主要是前者是异步加载,后者是同步加载
    • import()通常用于按需加载、条件加载、动态的模块路径

    new set数组去重

    var arr = [1,2,3,3,1,4];
    [...new Set(arr)]; // [1, 2, 3, 4]
    

    Symbol

    Symbol()返回的symbol值都是唯一的。一个symbol值能作为对象属性的标识符;这是该数据类型仅有的目的。

    模板字符串

    展开运算符和剩余运算符

    • 展开运算符用三个点号表示,功能是把数组或类数组对象展开成一系列用逗号隔开的值,即打散操作:
      数组传参、合并数组、合并对象等等
    • 剩余运算符也是三个点号,不过其功能与扩展运算符恰好相反,把逗号隔开的值序列组合成一个数组,是展开运算符的反向操作,即打包操作:
      函数设参(不确定参数的时候)、

    for of

    • for of适用遍历数/数组对象/字符串/map/set等拥有迭代器对象的集合.但是不能遍历对象,因为没有迭代器对象.与forEach()不同的是,它可以正确响应break、continuereturn语句

    数组 fla、find、findIndex

    let ary = [1, [2, [3, [4, 5]]], 6];// -> [1, 2, 3, 4, 5, 6]
    ary = ary.flat(Infinity);
    

    对象

    Object.assign() Object.values() Object.keys() Object.create()

    Object.keys和Object.create

    相关文章

      网友评论

          本文标题:(JS)

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