详细介绍:ES6核心基础

news/2025/9/25 21:20:51/文章来源:https://www.cnblogs.com/yxysuanfa/p/19112054

一、核心知识点(与 Vue 紧密相关)


✅ 1. 解构赋值(Destructuring)

✅ 基本解释:

解构赋值允许你从数组或对象中快速提取数据,并赋值给变量

数组解构:
const arr = [1, 2, 3];
const [a, b] = arr;
// 相当于:a = arr[0]; b = arr[1]
对象解构:
const user = { name: 'Tom', age: 20
};
const { name, age
} = user;
// 相当于:name = user.name; age = user.age
Vue 应用:

在 Vue 3 中的 setup() 函数里,经常使用对象解构来提取 propscontext 或响应式变量。

function setup(props) {
const { title, content
} = props;
}

这样写比 props.titleprops.content 更简洁、更易读。


✅ 2. 模板字符串(Template Literals)

✅ 基本解释:

模板字符串是一种新的字符串写法,它使用 反引号 ` 而不是单引号或双引号,并且支持插入变量或表达式

const name = 'Vue';
console.log(`Hello, ${name
}`);
// 输出:Hello, Vue

传统写法是:

console.log('Hello, ' + name);
// 旧写法
Vue 应用:

在 Vue 模板中拼接字符串常用:


✅ 3. 箭头函数(Arrow Functions)

✅ 基本解释:

箭头函数是函数的简写形式,语法更短,并且有一个重要特点是:

箭头函数不会创建自己的 this,它会使用定义它时的外层作用域的 this

示例说明:
const obj = {
count: 0,
regularFunc: function () {
console.log(this.count);
// this 指的是 obj 本身
},
arrowFunc: () =>
{
console.log(this.count);
// ❌ this 不是 obj,而是外层作用域(如 window)
}
};

通俗理解

  • function () {} 会根据谁调用它来决定 this;
  • ()=>{} 不关心谁调用它,它的 this 和外部是“绑定在一起”的。
Vue 应用:
watchEffect(() =>
{
// 箭头函数中使用响应式变量,无需担心 this
console.log(state.count);
});

✅ 4. 扩展运算符(…)

✅ 基本解释:

扩展运算符 ... 用来展开一个对象或数组的内容,可以用在拷贝、合并、传参等很多地方。

数组用法:
const arr = [1, 2];
const newArr = [...arr, 3];
// [1, 2, 3]
对象用法:
const base = { a: 1
};
const merged = {
...base, b: 2
};
// { a: 1, b: 2 }
Vue 应用:

合并组件属性:

const defaultProps = { color: 'red'
};
const props = {
...defaultProps, size: 'large'
};

✅ 5. 默认参数

✅ 基本解释:

在函数定义时,可以为参数设置默认值。调用时如果该参数未传,就使用默认值。

function greet(name = 'Guest') {
console.log(`Hello, ${name
}`);
}
greet();
// Hello, Guest
greet('Vue User');
// Hello, Vue User
Vue 应用:

在 Vue 方法中使用默认值可以简化判断:

methods: {
log(msg = '默认信息') {
console.log(msg);
}
}

✅ 6. 对象简洁写法

✅ 基本解释:

当你定义一个对象时,如果属性名和变量名相同,就可以只写一次。

const name = 'Vue';
const version = 3;
const app = {
name,
version
};
// 相当于 { name: name, version: version }
Vue 应用:
export default {
data() {
const name = 'Vue';
return { name
};
// 等同于 { name: name }
}
}

✅ 7. Promise / async await

✅ 基本解释:

Promise 是用来处理异步任务的一种结构,例如网络请求或定时器。

const p = new Promise(resolve =>
{
setTimeout(() =>
resolve('完成'), 1000);
});

async / await 是基于 Promise 的语法糖,写法更直观,像写同步代码一样。

async function loadData() {
const result = await p;
console.log(result);
// 完成
}
Vue 应用:

onMounted 中加载数据常使用 async:

onMounted(async () =>
{
const res = await fetch('/api/data');
const data = await res.json();
});

✅ 8. import / export 模块化

✅ 基本解释:

模块化的意思是将代码分成多个文件,每个文件负责一部分功能。

使用 export 公开一个变量或函数,使用 import 引入它们。

// math.js
export function add(a, b) {
return a + b;
}
// main.js
import { add
} from './math.js';
console.log(add(1, 2));
// 3
Vue 应用:

Vuex、API、工具函数等经常使用模块拆分:

// store/modules/user.js
export default {
state: { name: 'Tom'
}
};
// store/index.js
import user from './modules/user';

二、配套练习题(实战 + 基础)

保持原样,仅略微调整语言,使题目更贴合基础读者

练习 1:解构 props 和响应式数据

// 请补全 setup 函数中的解构语句
const props = { title: 'Hello', content: 'World'
};
function setup(props) {
// 解构 title 和 content
const {title,content
}= props
}

练习 2:箭头函数与 this 的区别

const obj = {
count: 0,
increase: () =>
{
console.log(this.count);
}
};
// 请解释:为什么 this.count 输出 undefined?this是指的是全局的this 但是最外层没有定义count

练习 3:异步请求与组合式 API

import { ref, onMounted
} from 'vue';
export default {
setup() {
const data = ref([]);
// 定义一个异步函数来获取数据
const fetchData = async () =>
{
try {
// 这里可以使用 fetch API 或其他 HTTP 库来发送请求
const response = await fetch('https://api.example.com/data');
if (!response.ok) {
throw new Error('Network response was not ok');
}
const result = await response.json();
// 将获取到的数据赋值给响应式引用
data.value = result;
} catch (error) {
console.error('Error fetching data:', error);
}
};
// 在组件挂载后执行获取数据的函数
onMounted(async () =>
{
await fetchData();
});
return { data
};
}
};

练习 4:使用扩展运算符合并 props

const defaultProps = { a: 1, b: 2
};
const incomingProps = { b: 3, c: 4
};
const a ={
...defaultProps,...incomingProps
}
console.log(a)
// 合并两个对象,结果为 { a: 1, b: 3, c: 4 }

练习 5:模块导入导出拆分逻辑

// utils/math.js
// 请导出一个 add(a, b) 函数
export function add(a,b){
return a + b;
}
// main.js
// 从 math.js 中导入 add 并调用它
import {add
}from "./utils/math.js"
console.log(add(1, 2));

三、推荐学习路径(与 Vue 搭配)

阶段ES6 知识点Vue 应用场景
入门解构、箭头函数、模板字符串、默认值setup 解构、事件处理
进阶模块化、Promise/async、扩展运算符Vuex、异步组件、组合式 API
提升类、Symbol、生成器等Vue 插件开发、底层源码阅读

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

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

相关文章

kubernetes事件监控工具--Kube-Event

在日常使用中,总会碰到容器“不经意间”重启的情况,但我完全不知道上次重启是什么时候。容器一旦重启,旧实例就会被销毁,如果旧容器日志没有被收集或转存,就彻底丢失了。这样一来,想通过历史日志排查问题原因就显…

wordpress 中英文站点佛山的网站建设公司

引言 C语⾔是结构化的程序设计语⾔,这⾥的结构指的是顺序结构、选择结构、循环结构。为什么有着三种结构呢,大家其实可以想象一下,生活中的绝大数事情都可以抽象着三种结构,而我们今天要给大家介绍的就是三大结构之一——选择结构…

做电子简历的网站悦西安

本文主要介绍Linux 字体颜色的调整,常用于shell脚本当中。我们举一个例子:echo-e"\033[44;37;5m ME \033[0m COOL" 以上命令设置背景成为蓝色,前景白色,闪烁光标,输出字符“ME”,然后重新设置屏幕…

企业档案管理系统:精准破局制造行业档案管理困境 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

实用指南:【 GUI自动化测试】GUI自动化测试(一) 环境安装与测试

实用指南:【 GUI自动化测试】GUI自动化测试(一) 环境安装与测试pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "C…

怎么建一个卖东西的网站网站怎样关键词排名优化

在日常编码环节,很大比例的错误处理工作和参数的输入有关。当程序里的某些数据直接来自用户输入时,必须先校验这些输入值,再进行之后的处理,否则就会出现难以预料的错误。 需求: 写一个命令行小程序,它要求…

喵喵大王の新日记

2025 9.25 突然心血来潮了,于是开了新日记,但是实际上我也不一定更的多么频繁,毕竟上了大学还是有点忙的。才不是一直打三角洲懒得更新 这里应当有一篇新文章。啥时候写完想起来放上。本文来自博客园,作者:北烛青…

【JavaEE】MyBatis - Plus - 教程

【JavaEE】MyBatis - Plus - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco&q…

多GPU本地布署Wan2.2-T2V-A14B文本转视频模型 - yi

多GPU本地布署Wan2.2-T2V-A14B文本转视频模型一,#本机环境检查 执行nvidia-smi,查看右上角。验证显卡驱动已安装最高支持的版本。nvidia-smi#在调试时,为了实时观察GPU利用率,一般新开一个命令窗口,执行以下命令,…

NOI 模拟赛五

DPA. 纪念场切题。 记 \(f[i, j, x, 0/1, 0/1]\) 表示前 \(i\) 个车站都已经经过,\(i\rightarrow i+1\) 的边走过 \(j\) 次,总距离 \(\bmod m=x\) ,是否钦定起点,是否钦定终点(这 \(j\) 条边经过是有顺序)。 为了…

常州装修网站建设公司企业的建站方式

运行软件前提前安装好OPC运行组件: 为方便演示,提前准备好了一个DAServer服务器: 接下来开始配置: 该软件主要实现的功能如下: 配置过程也相对简单: 第一步: 编辑如下文件: 第二步…

企业微信手机片网站制作上海建筑工程招投标网

这是什么?这是有关警告,错误和注意事项的许多答案,这些警告,错误和注意事项在您对PHP进行编程时可能会遇到,并且不知道如何解决它们。这也是一个社区Wiki,因此邀请所有人参与添加并维护此列表。为什么是这样…

免费咨询律师24小时电话桂平seo快速优化软件

数学建模常用的算法分类 全国大学生数学建模竞赛中,常见的算法模型有以下30种: 最小二乘法数值分析方法图论算法线性规划整数规划动态规划贪心算法分支定界法蒙特卡洛方法随机游走算法遗传算法粒子群算法神经网络算法人工智能算法模糊数学时间序列分析马…

中小型网站建设与管理总结wordpress手机怎么用

性能对比:Memcached 与 Redis 的关键差异 在选择合适的缓存系统时,Memcached 和 Redis 是最常被提及的两种技术。它们都是内存存储系统,用于提高数据访问速度和应用性能。尽管它们在功能上有很多相似之处,但在性能、特性和应用场…

AI热点周报(09.14~09.20):Gemini集成到Chrome、Claude 强化记忆、Qwen3-Next快捷落地,AI走向集成化,工程化?

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

什么是Delphi4Python?

什么是Delphi4Python? Delphi for Python的主要重点是为Python开发者提供免费的Python模块或Delphi的GUI框架的绑定。基于Delphi的两个不同的框架两个不同的库。DelphiVCL,用于 Windows 的本地库;DelphiFMX,用于跨…

实用指南:Python的大杀器:Jupyter Notebook处理.ipynb文件

实用指南:Python的大杀器:Jupyter Notebook处理.ipynb文件pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Conso…

flask认证机制logging模块实战

flask认证机制logging模块实战 ​ 如何在项目中实现日志的记录呢?在 Flask 中我们可以使用 Python 的内置 logging 模块来实现记录日志。你可以对照表格看看具体的日志级别分类,从上往下级别依次升高,最高的是 CRIT…

1核1g服务器做网站网站建设模块有哪些

大家好,这里是深海网络,今天给大家讲解一下新版影视小程序搭建。  首先给大家看一下新版影视小程序是什么样子的,它有黑夜和白天两种观影模式,而且搜索精准,播放速度快。01第一步,开始正式搭建。新版区小…

25.9.25随笔联考总结

考试 开考后忘记通读题面了,主要是看到 T1 太简单直接写了,写完才去读的题。然后决定的开题顺序是 324,结果后面 4 个小时一道都不会,破防了。T2 我觉得直接 manacher 是很诡异的,然后就去思考套一个 ds 啥的,不…