Skip to content

1.数组

[find]

find() 方法是用于从数组中寻找一个符合指定条件的值,该方法返回的是第一个符合条件的元素,如果没找到,则返回 undefined.

语法格式: array.find(callback(value, index, arr), thisValue);

参数说明如下:

  • callback 是数组中每个元素执行的回调函数。
  • value 是当前元素的值,它是一个必须参数。
  • index 是数组元素的下标,它是一个可选参数。
  • arr 是被 find() 方法操作的数组,它是一个可选参数。
  • thisValue 是执行回调时用作 this 的对象,它是一个可选参数。

findIndex()方法类似,只不过返回值为元素下标

[fill]

fill() 方法是用指定的值来填充原始数组的元素。

语法格式:array.fill(value, start, end);

其参数说明如下:

  • value 是用来填充数组的值,它是一个必须参数。
  • start 是被填充数组的索引起始值,它是一个可选参数。
  • end 是被填充数组的索引结束值,它是一个可选参数。

遍历方法

  • entries()方法以键/值对的形式返回数组的 [index,value],也就是索引和值。

  • keys()方法只返回数组元素的键值也就是元素对应的索引,不会返回其值。

  • values()方法返回的是每个键对应的值。

可通过如下代码遍历上述方法的返回结果: for(let term in arr.keys() )

拓展运算符[...]

  • 可以使用扩展运算符将一个对象的全部属性插入到另一个对象中,来创建一个新的对象。
  • 可以使用扩展运算符给对象添加属性。
  • 可以使用扩展运算符合并两个新对象。

2.函数

  • 在函数中直接设置默认值 / 使用函数作为默认值
  • 解构参数
  • rest 参数(与拓展运算符写法相同),用 rest 来获取函数的多余参数,接收可变的参数列表.
  • 箭头函数: 箭头函数的 this 指向是其上下文的 this,没有方法可以改变其指向.

3.类

  • 使用 class 关键字来声明类。
  • 使用 extendssuper 关键字来实现类的继承。
  • 使用 static 关键字来定义静态属性和静态方法,使用 # 来定义私有属性和私有方法。
  • 使用 new.target 来判断构造函数的调用方式。

当我们想写不能被实例化,必须在继承后才能使用的类时,我们可以用 new.target 属性,做为限制其不能被实例化(new)的条件。

4.对象

  • 对象字面量:
    • 属性的简洁表示法: 属性值的变量名与属性名想用可省略
    • 方法的简洁表示法: 可直接写方法,不用再写function关键字
    • 属性名表达式: 可以用表达式 / 模板字面量(即反引号)作为属性名.
  • 对象的扩展运算符: 与数组类似,能实现拷贝 / 合并 / 添加属性等操作
  • 对象的新增方法
    • Object.is:判断两个值是否相等。 比===更精确一点
    • Object.assign:合并多个对象。(同名属性会被覆盖,且为浅拷贝)

5.[Set] 和 [Map]

  • Set 是一个可以存储数据的对象,你可以在其中添加或者删除数据,并循环访问 Set。但是 Set 中没有索引,也不能存放重复的值,数组与之相反。
  • Map 可以创建任意数据类型的键值对,打破了对象键名类型限制的局限性。
  • Set 通过add添加元素,Map 通过set添加元素,通过get获取值
  • 通用方法: delete(),has(),clear(),forEach()

6.异步编程

  • Promise(reslove,reject)
  • async关键字修饰的函数将返回一个Promise对象,await关键字会等异步请求完成后才执行.

7.模块化

  • 输出接口: export {name}
  • 输入接口: import {} form "url"

8.Proxy

ES6中的Proxy是一种元编程机制,它允许开发人员拦截和自定义对象的访问和行为。它可以用来创建一个代理对象,它可以代替另一个对象作为被访问对象,从而控制对被代理对象的访问。

常用的四种拦截方法:

  • get(target, propKey, receiver):拦截对象属性的读取。
  • set(target, propKey, value, receiver):拦截对象属性的设置。
  • has(target, propKey):拦截 propKey in proxy 的操作。
  • ownKeys(target):拦截 Object.getOwnPropertyNames(proxy)、Object.getOwnPropertySymbols(proxy)、Object.keys(proxy)、for...in 循环。