(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