ES6常用语法

1.声明变量: let 和 const

let 声明的变量可以被修改;const 声明的变量是常量,不可被修改。

let x = 10;
const PI = 3.14;

2. 箭头函数

更简洁,绑定了词法作用域的 this 值。不会创建自己的 this,而是继承了上下文中的 this 值,这意味着箭头函数的 this 始终指向定义时所在的作用域。

// 传统函数定义
function add(a, b) {return a + b;
}// 箭头函数定义
const add = (a, b) => a + b;// 词法作用域绑定
function Person() {this.age = 0;setInterval(() => {this.age++; // this 指向 Person 对象}, 1000);
}// 隐式返回,可省略 return 关键字
const add = (a, b) => a + b;// 适用于回调函数
const arr = [1, 2, 3];
const doubled = arr.map(num => num * 2);

3. 模板字符串

使用反引号 \` ${} 来插入变量或表达式,使字符串拼接更简洁。

const name = 'Alice';
console.log(`Hello, ${name}!`);

4. 解构赋值

允许按照一定模式从数组或对象中提取值,然后赋值给变量

const [x, y] = [1, 2];
const {name, age} = {name: 'Alice', age: 30};

5. 默认参数

函数参数可以指定默认值,当调用函数时没有传入对应参数时,使用默认值。

function greet(name = 'World') {console.log(`Hello, ${name}!`);
}

6. 展开运算符

展开运算符(`...`)可以将数组或对象展开为独立的元素,或者将多个参数合并为数组。

const arr1 = [1, 2, 3];
const arr2 = [...arr1, 4, 5];
const obj1 = {a: 1, b: 2};
const obj2 = {...obj1, c: 3};

7. 类和继承

ES6 引入了类(class)和继承的语法糖,更易于面向对象编程。

class Animal {constructor(name) {this.name = name;}speak() {console.log(`${this.name} makes a noise.`);}
}class Dog extends Animal {constructor(name) {super(name);}speak() {console.log(`${this.name} barks.`);}
}const dog = new Dog('Spot');
dog.speak(); // Spot barks.

8. Promise 对象

Promise 是一种用于异步编程的对象,用于表示一个异步操作的最终完成或失败及其结果值

Promise 对象的特点:

  1. 状态pending(进行中)、fulfilled(已成功)和 rejected(已失败)。状态一旦改变,就不会再变,从 pending 到 fulfilled 或者从 pending 到 rejected。

  2. 状态转换只能由 pending 转换为 fulfilled 或者 rejected,并且一旦状态确定就不可再改变。

  3. 结果值:状态变为 fulfilled 时,会传递一个结果值;状态变为 rejected 时,会传递一个拒绝原因(错误信息)。

const promise = new Promise((resolve, reject) => {// 执行异步操作setTimeout(() => {// 异步操作成功,调用 resolve 并传递结果值resolve('Success!');// 异步操作失败,调用 reject 并传递拒绝原因// reject('Error!');}, 1000);
});promise.then(// 成功时执行的回调函数result => {console.log(result); // 'Success!'},// 失败时执行的回调函数error => {console.error(error); // 'Error!'}
);

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

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

相关文章

【ITK滤波】第2期 边缘检测

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 公众号:VTK忠粉 前言 本文分享ITK中的边缘检测,及相关实例和算法解析,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步! 你的点赞就是我的动力(^U^)ノ~YO …

StringUtils.join()

源码 public static String join(Iterable<?> iterable, String separator) {return iterable null ? null : join(iterable.iterator(), separator);} 简介 这个函数是一个静态函数&#xff0c;它接受一个可迭代对象和一个分隔符作为参数&#xff0c;并返回一个将可…

[入门]测试原则-ApiHug准备-测试篇-002

&#x1f917; ApiHug {Postman|Swagger|Api...} 快↑ 准√ 省↓ GitHub - apihug/apihug.com: All abou the Apihug apihug.com: 有爱&#xff0c;有温度&#xff0c;有质量&#xff0c;有信任ApiHug - API design Copilot - IntelliJ IDEs Plugin | Marketplace 写在前面…

低敏猫粮怎么选?看这一篇就够了!

亲爱的朋友们&#xff0c;你们是否曾经为了家中敏感肠胃的小猫咪而犯愁&#xff0c;不知道如何选择适合的猫粮呢&#xff1f;今天&#xff0c;就让我们一起聊聊低敏猫粮与普通猫粮的那些不同之处吧&#xff01;&#x1f431; 1️⃣ **成分差异**&#xff1a;首先&#xff0c;从…

Go 自定义14位时间类型 yyyyMMddHHmmss

目录 功能 代码 功能 数据库或者接口时间类型&#xff0c;经常会使用14位的时间格式。每次都转换有点麻烦。可以自定义一个时间类型。 自定义类型需要实现json接口中的MarshalJSON与UnmarshalJSON两个函数&#xff0c;这样在做json编码解码时就会自动转为14位的时间格式了。…

第四届大数据工程与教育国际会议(BDEE 2024)即将召开!

第四届大数据工程与教育国际会议&#xff08;BDEE 2024&#xff09;将于2024年8月9-11日在泰国清迈举行。数据驱动教育变革&#xff0c;智慧点亮未来课堂&#xff01;BDEE 2024是专注于大数据工程与教育领域的重要学术会议&#xff0c;全球大数据与教育精英齐聚&#xff0c;在数…

使用 Docker 部署 SurveyKing 调查问卷系统

1&#xff09;SurveyKing 介绍 SurveyKing 是一款功能强大、操作简便的开源问卷系统。它不仅满足了用户对问卷调查的基本需求&#xff0c;还提供了丰富的逻辑设置和灵活的问题设置&#xff0c;使得问卷制作更加智能化和个性化。此外&#xff0c;SurveyKing 还具有快速部署和安全…

构建鸿蒙ACE静态库

搭建开发环境 根据说明文档下载鸿蒙全部代码&#xff0c;一般采取第四种方式获取最新代码(请保证代码为最新) 源码获取Windows下载编译环境 MinGW GCC 7.3.0版本 请添加环境变量IDE 可以使用两种 CLion和Qt,CLion不带有环境需要安装MinGW才可以开发,Qt自带MinGW环境&#xff0…

认识一下RAG

1.RAG技术背景与挑战 2.RAG的核心概念 3.RAG的工作流程与架构 4.RAG的优化方法 RAG的提出 •Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks是一篇重要的论文(2020年5月) •REALM: Retrieval-Augmented Language Model Pre-Training (2020)就将BERT预训练模…

Unity URP Release-Notes

&#x1f308;Unity URP Release-Notes 收集的最近几年 Unity各个版本中 URP的更新内容 本文信息收集来自自动搜集工具&#x1f448; &#x1f4a1;URP Release-Notes 2023 &#x1f4a1;URP Release-Notes 2022 &#x1f4a1;URP Release-Notes 2021

Unity URP 2023 Release-Notes

&#x1f308;Unity URP 2023 Release-Notes 本文信息收集来自自动搜集工具&#x1f448; 版本更新内容2023.2.13URP: Ensure motion vector depth buffer is valid for cameras with motion vectors enabled.(UUM-61466)2023.2.2Universal RP: URP: Fixed an issue where scr…

家居网购项目(三)

文章目录 1.后台管理—添加家居1.需求分析2.程序框架图3.修改FurnDao添加方法add 4.修改FurnDaoImpl添加方法add 5.单元测试FurnDaoTest.java 6.修改FurnService添加方法add 7.修改FurnServiceImpl添加方法add 8.单元测试FurnServiceTest.java 9.修改furn_add.jsp10.修改FurnSe…

向量数据库之Lancedb学习记录

简介 Lancedb是一个用于人工智能的开源矢量数据库&#xff0c;旨在存储、管理、查询和检索大规模多模式数据的嵌入。Lancedb的核心是用Rust编写的&#xff0c;并构建在Lance之上&#xff0c;专为高性能 ML 工作负载和快速随机访问而设计。 快速开始 安装 pip install lance…

【面试经典 150 | 数学】阶乘后的零

文章目录 写在前面Tag题目来源题目解读解题思路方法一&#xff1a;数学优化计算 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法&#xff0c;两到三天更新一篇文章&#xff0c;欢迎催更…… 专栏内容以分析题目为主&#xff0c;并附带一些对于本题涉及到的数据结…

安秉信息桌面监控软件为什么这么受企业的欢迎

如今&#xff0c;软件市场上的桌面监控软件的类型丰富&#xff0c;种类齐全&#xff0c;几乎每个消费者都可以在市场上找到一款适合自己需求的桌面监控软件。不过&#xff0c;在市场经济调节下&#xff0c;软件行业的竞争也变得更加激烈&#xff0c;而竞争也能让真正受欢迎的桌…

CJS的module.exports 、 exports和ESM export default和 export详解

webpackg公共源码 function __webpack_require__(moduleId) {if (__webpack_module_cache__[moduleId]) {return __webpack_module_cache__[moduleId].exports;}var module __webpack_module_cache__[moduleId] { exports: {} };__webpack_modules__[moduleId](module, modu…

人工智能——机器学习概述

1. 人工智能 1.1. 概念 人工智能(Artificial Intelligence&#xff0c;AI)&#xff0c;是新一轮科技革命和产业变革的重要驱动力量&#xff0c; [26]是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。 人工智能是智能学科重要的组…

【Ansible自动化运维】Ansible入门基础信息【安装配置、常用命令与模块】

介绍安装配置注意事项yum安装验证安装配置host配置主机清单配置主控端被控端 常用模块命令组成command模块shell模块copy模块script模块 日志信息最后 介绍 Ansible 是一个开源 IT 自动化引擎&#xff0c;可自动执行供应、配置管理、应用程序部署、编排和许多其他 IT 流程。它可…

Python 选择用类或方法做装饰器的场景

在Python中,我们可以使用方法或者类来实现装饰器。选择使用方法还是类作为装饰器,主要取决于具体的应用场景。 使用方法作为装饰器 当装饰器的功能相对简单,不需要保持任何状态信息时,使用方法作为装饰器是一个不错的选择。这种情况下,装饰器通常只是对被装饰函数进行一些额外…

YesPMP平台 | 活动有礼,现金奖励点击领取!

YesPMP众包平台在线发福利啦&#xff0c;活动火热开启&#xff0c;现金奖励等你来领&#xff0c;最高可领千元&#xff0c;赶快参与将奖励收入囊中&#xff0c;一起来了解活动细节吧&#xff01; 一、活动内容&#xff1a; 活动一&#xff1a;【项目征集令】活动&#xff0c;…