es6 异步函数变成了同步执行

本文介绍了ES6中的异步处理方法,如Promise、async和await,它们解决了回调地狱,使得异步操作变得同步。同时,文章探讨了Map、Set数据类型以及Symbol的独特性质。此外,还讲解了同源策略、模块化语法(import/export)以及如何通过别名设置避免命名冲突。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

map 和 set 数据类型

set 只能对储基本数据类型的值保证必须是唯一的,有去重的功能,如果是引用数据类型则不会去重。

  1. set类型转数组

  • Array.from

  • [...setData]

  1. 自带方法

  • get 获取

  • add 添加

  • delete 删除

  • clear 清空

  • has 查询

  • values 序列化值

  • forEach 遍历

  1. 使用场景最多的时候

  • 数组去重

map

  1. 语法:new Map([['key',value],[key, value]])

  2. 自带方法和set一样

Symbol 唯一的数据类型,即便使用它初始值相同,返回的值也是不同的

proxy 代理方法,它可以监听一切数据类型的值

reflect 代理方法,比proxy要弱一点

promise 异步解决方法

  • 目的是把异步操作变成了同步执行

  • 解决了回调地狱

特点

  • 如果接口请求成功调用resolve,否则调用reject

  • 状态一旦使用,则不能修改

  • promise一旦执行不能终止

同源策略

http://baidu.com:8080
  • http:// 协议

  • baidu.com 域名

  • 8080 http 80默认端口,https 443默认端口

  1. 协议、域名、端口必须一致叫同源,有一个不一致叫跨域

  2. 同源策略是一种保护机制,保证网站内容不容易被轻易窃取

module 模块化语法

  1. es6使用import 导入模块

  2. es6使用export 导出模块

  3. 解释:模块化就是让每一个js文件作为独立的模块使用,它拥有自己的独立的作用域,不回污染全局环境.

  4. 在原生的html中的script标签上使用type=‘module’即可以使当前script标签变成模块化.

使用方法

  1. 每个模块只能有一个export default 叫默认导出模块,上游导入的时候,直接使用变量名接收.

// 导出
export default {}
// 导入
import name from "./moduleName"

  1. 可以使用export直接导出功能,一个模块可以无限次使用export直接导出,上游导入的时候需要使用解构的方式获取

// 导出
export let name = '123'
export const obj = {}
export let arr = []
​
// 导入
import { name, obj, arr } from "./moduleName"

别名设置

如果导入的模块名称和当前作用域的变量名有冲突,我们可以给导入的模块取一个别名,避免这种命名冲突问题

  • as import name as newName from "./xx" or import { name as newName } from "./xxx"

async和await 是promise的语法糖

定义:用于函数,把异步函数变成了同步执行,比promise更加的直观

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Pinia-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值