ES6ES6

news2024/9/25 23:13:57

ES8-ES8 新特性

4.1.async 和 await
async和await 两种语法结合可以让异步代码像同步代码一样
4.1.1.async函数

  1. async函数的返回值为 promise 对象,
    2.promise 对象的结果由 asynt函数执行的返回值决定
    4.1.2await表达式
  2. awaity必须写在 async 函数中
    2.await 右侧的表达式一般为 promise 对象
  3. await 返回的是 promise 成功的值
  4. await 的 promise 失败了,就会抛出异常,需要通过 try…catch 捕获处理
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    //发送AJAX请求,返回的结果是promise对象
    function sendAJAX(url) {
      return new Promise((resolve, reject) => {
        //1.创建对象
        const x = new XMLHttpRequest()
        //2.初始化
        x.open('GET', url)
        //3.发送
        x.send()
        //4.事件绑定
        x.onreadystatechange = function () {
          if (x.readyState === 4) {
            if (x.status >= 200 && x.status < 300) {
              //success
              resolve(x.response)
            } else {
              //err
              reject(x.status)
            }
          }
        }
      })
    }
    //promise then 测试
    sendAJAX("https://api.apiopen.top/api/getHaoKanVideo?page=0&size=2").then(value => {
      console.log(value)
    }, reason => { })

    async function main() {
      try {
        let result = await sendAJAX('https://api.apiopen.top/api/sentences')
      } catch {
        
      }

    }
    main()
  </script>
</body>

</html>

4.2.0bject.values 和 Object.entries
1.object.values()方法返回一个给定对象的所有可枚举属性值的数组
2.object.entries()方法返回一个给定对象自身可遍历属性[keyvalue] 的数组
4.3.ObjectgetOwnPropertyDescriptors
该方法返回指定对象所有自身属性的描述对象

 const jier = {
      name: '咕咕咕咕',
      maomao: ['奶牛', '狸花', '橘猫', '三花', '大白']
    }
    //获取对象所有键
    console.log(Object.keys(jier))
    //获取对象的所有值
    console.log(Object.values(jier))
    //entires
    console.log(Object.entries(jier))
    //创建Map
    const m = new Map(Object.entries(jier))
    console.log(m.get('maomao'))
    //对象属性的描述对象
    console.log(Object.getOwnPropertyDescriptors(jier))

    const obj = Object.create(null, {
      name: {
        //设置值
        value: '黑白',
        //属性的特性
        writable: true,
        configurable: true,
        enumerable: true
      }
    })

ES9-ES9新特性

  1. 扩展运算符与rest参数
  2. 正则命名分组
  3. 可选链操作符(很实用)

1.扩展运算符与rest参数

Rest 参数与 spread·扩展运算符在 ES6 中已经引入,不过 ES6 中只针对于数组在ES9 中为对象提供了像数组一样的 rest 参数和扩展运算符

function connect({ host, ...user }) {
      console.log(host)
      console.log(user)
    }
    connect({
      host: '127.0.0.1',
      port: 3306,
      username: 'root',
      password: 'root'
    })
    const skillOne = {
      q: 'llalal1'
    }
    const skillTwo = {
      w: 'OiOi哦熊'
    }
    const skillThree = {
      e: '扣扣扣了'
    }
    const mmm = { ...skillOne, ...skillTwo, ...skillThree }
    console.log(mmm)

2.正则命名分组

<script>
    let str = '<a href="http://www.baidu.com">百度</a>'
    //提取url和标签文本
    const reg = /<a href="(.*)">(.*)<\/a>/
    const result = reg.exec(str)
    console.log(result)
    //(.*)是占位符
    
  </script>

在这里插入图片描述

 let str = '<a href="http://www.baidu.com">百度</a>'
    //提取url和标签文本
    const reg = /<a href="(?<url>.*)">(?<text>.*)<\/a>/
    const result = reg.exec(str)
    console.log(result)

在这里插入图片描述

3.可选链操作符(很实用)

<script>
    function main(config) {
      //const dbHost = config && config.db && config.db.host
      const dbHost = config?.db?.host
      console.log(dbHost)
    }
    main({
      db: {
        host: '193.23.45.67',
        username: 'root'
      }
    })
  </script>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/170553.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Rockchip开发系列 - 3.2.引脚配置默认上拉下拉

By: fulinux E-mail: fulinux@sina.com Blog: https://blog.csdn.net/fulinus 喜欢的盆友欢迎点赞和订阅! 你的喜欢就是我写作的动力! 目录 返回总目录:Rockchip开发系列 - 总目录 开发过程中发现rk3568-linux.dtsi中耳机监测应急一直是处于低电平状态: 这个gpio表格也说…

【MyBatis】| 在WEB中应⽤MyBatis(使⽤MVC架构模式)

目录 一&#xff1a;在WEB中应⽤MyBatis&#xff08;使⽤MVC架构模式&#xff09; 1. 前期准备 2. 核心代码实现 3. 事务控制 4. 三大对象的作用域 一&#xff1a;在WEB中应⽤MyBatis&#xff08;使⽤MVC架构模式&#xff09; 目标&#xff1a; ①掌握mybatis在web应⽤中怎…

【闪电侠学netty】第9章 实现客户端登录

【Netty】读书笔记 - 跟闪电侠学 1. 内容概要 1.1 总结 1.1.1 逻辑处理器 ChannelHandler&#xff08;详见 第11章 Pipeline与ChannelHandler&#xff09; 1.1.2 编程小技巧 public class PacketCodeC {...public static final PacketCodeC INSTANCE new PacketCodeC();.…

spring学习-第一讲-beanFactory与ApplicationContext

BeanFactory与ApplicationContext区别 创建一个springboot项目&#xff0c;对这个函数的main函数来进行执行。 ConfigurableApplicationContext context SpringApplication.run(BeanFactoryApplicationContextStudyApplication.class, args); 很明显&#xff0c;Configurabl…

“互联网+”六年,云徙科技打造数字化经营增长“头牌”

2022年底的全面开放结束了三年疫情&#xff0c;三年来以消费零售为代表的商业领域发生了深刻变局。根据2022年8月的第50次中国互联网络发展状况统计报告&#xff0c;互联网推动网民消费模式变迁&#xff1a;在消费场景方面&#xff0c;从线上消费逐步转变为线上线下融合消费&am…

软件安装教程-Vivado2018.3/ISE14.7/Modelsim10.5/Keil5/AD18/Cadence17.2/CAD2016

硬件工程师软件安装教程 1.Vivado2018.3安装教程 本文的主要内容是介绍 Vivado 2018.3 版本(提取码&#xff1a;ebdx)的安装步骤及其 license(提取码: 6xkh) 的获取与加载。 本文学习自《【ALINX】FPGA ZYNQ视频教程——AX7010/AX7020教程——基础部分》 首先下载安装包&…

【Unity3D】基于模板测试和顶点膨胀的描边方法

1 前言 选中物体描边特效 中介绍了基于模板纹理模糊膨胀的描边方法&#xff0c;该方法实现了软描边&#xff0c;效果较好&#xff0c;但是为了得到模糊纹理&#xff0c;对屏幕像素进行了多次二次渲染&#xff0c;效率欠佳。本文将介绍另一种描边方法&#xff1a;基于模板测试和…

简单使用tomcat查看版本信息等·

Tomcat 是什么 &#xff1f;1.Apache Tomcat 是由 Apache Software Foundation&#xff08;ASF&#xff09;开发的一个开源 Java WEB 应用服务器。2.由于 Tomcat 是由 Java 语言实现的&#xff0c;因此需要运行在 Java 虚拟机上&#xff0c;所以使用前要先安装 JDK&#xff0c;…

JNPF Java3.4.5 .NET6 3.4.5 框架源码 JeeSite快速开发平台

JeeSite JeeSite 快速开发平台的主要目的是能够让初级的研发人员快速的开发出复杂的业务功能&#xff0c;中高级人员有时间做一些更有用的事情。让开发者注重专注业务&#xff0c;其余有平台来封装技术细节&#xff0c;降低技术难度&#xff0c;从而节省人力成本&#xff0c;缩…

电商控价,为什么要找控价公司

刚刚做控价的时候&#xff0c;相信我们心中都有一个疑问&#xff1a;控价嘛&#xff0c;很简单&#xff0c;把标准价格发给低价店铺&#xff0c;让他调价不就行了&#xff1f;不配合&#xff0c;我就投诉&#xff0c;要么我就断货&#xff0c;自己产品自己说了还不算吗&#xf…

《大话数据结构》读书笔记---第一章 数据结构绪论

数据结构&#xff1a;是相互之间存在一种或多种特定关系的数据元素的集合。数据结构是一门研究非数值计算的程序设计问题中的操作对象&#xff0c;以及它们之间关系和操作等相关问题的学科。程序设计数据结构算法数据&#xff1a;是描述客观事物的符号&#xff0c;是计算机中可…

C++复数类——运算符重载和类的传递

复数&#xff1a;我们把形如abi&#xff08;a,b均为实数&#xff09;的数称为复数&#xff0c;其中a称为实部&#xff0c;b称为虚部&#xff0c;i称为虚数单位。当虚部等于零时&#xff0c;这个复数可以视为实数&#xff1b;当z的虚部不等于零时&#xff0c;实部等于零时&#…

【Kotlin】类的继承 ② ( 使用 is 运算符进行类型检测 | 使用 as 运算符进行类型转换 | 智能类型转换 | Any 超类 )

文章目录一、使用 is 运算符进行类型检测二、使用 as 运算符进行类型转换 ( 智能类型转换 )三、Any 超类一、使用 is 运算符进行类型检测 在 Kotlin 中 , 如果不确定一个 实例对象的类型 , 可以 使用 is 运算符进行判定 , 使用方法 实例对象 is 判定类型上述用法可以判定 实例…

Windows11快速入门

1、如何快速上手Win11 Win11官网&#xff1a;https://www.microsoft.com/zh-cn/windows/windows-11?r1 Windows 帮助和学习&#xff1a;https://support.microsoft.com/zh-cn/windows?uizh-CN&rszh-CN&adCN) 2、Win11常用快捷键 2.1、文本编辑快捷键 功能描述快捷键…

【JavaGuide面试总结】MySQL篇·下

【JavaGuide面试总结】MySQL篇下1.介绍一下索引吧2.索引的优缺点3.讲一下索引的底层数据结构Hash 表B 树& B树1.介绍一下索引吧 索引是一种用于快速查询和检索数据的数据结构&#xff0c;其本质可以看成是一种排序好的数据结构。 索引的作用就相当于书的目录。打个比方: …

SpringBoot集成Quartz实现定时任务的动态创建、启动、暂停、恢复、删除

看了好多文章&#xff0c;都只讲了基础的demo用法&#xff0c;也就是简单的创建运行定时任务&#xff0c;对定时任务的管理却很少。 我这里从0开始搭建一个简单的demo&#xff0c;包括定时任务的各种操作&#xff0c;以及API的一些用法&#xff0c;可以实现大多场景的需求。如…

A-Star算法探索和实现(四)

本篇摘要上一篇我们针对障碍物的“死胡同”问题进行了探索&#xff0c;本篇则针对障碍物生成在网格对角顶点处是否有意义以及路径周围存在障碍物时按照对角线移动是否合理两个问题进行探讨&#xff0c;这两个问题主要在于移动规则的限定&#xff0c;主要分为以下两种情况&#…

uniapp富文本内容样式改变处理方式

前言 在日常工作中经常会遇到富文本内容渲染的需求,最常见的问题是页面样式调整好之后,对服务端返回的富文本内容进行渲染时图片显示会有问题,原因在于富文本中的图片信息没有样式处理或是添加样式与父组件中样式不一致.正常显示: 异常显示: 下面就讲一下对于富文本图片样式修…

Jenkins企业邮箱的配置和发送(win版)

在学习jenkins时&#xff0c;我把jenkins安装在自己的笔记本电脑上&#xff0c;以下的配置过程均在win10下进行。 一&#xff1a;安装邮件扩展插件 进入Dashboard——>Manage Jenkins——Manage Plugins——可选插件下选择Email Extension Plugin并“install without rest…

CUDA编程笔记(3)

文章目录前言1.CUDA程序运行时的错误检测检测运行错误的头文件检查运行时的CUDA的api函数检查运行时的CUDA的核函数CUDA-MEMCHECK工具总结前言 CUDA程序运行时的错误检测 1.CUDA程序运行时的错误检测 检测运行错误的头文件 像一些日志文件&#xff0c;一般检测错误都会编写…