## 📚 Tech Stack & Context
- List all of the tech stack
- [[public/CODE/JavaScript|JavaScript]]
- 相关文档
- [JavaScript ES6+ features - DEV Community](https://dev.to/clifftech123/javascript-es6-features-13co)
## 🧩 相关场景 | Context
- 契机:为什么现在写它?
-
- 作用:它解决了什么问题?
-
- 应用场景:你未来会在什么地方用到它?
-
## 🔑 Key Concept
### let/const
cancel `var`,replace with `let/const`
### Arrow Function
[[JS - Arrow Function]]
### 展开运算符 Spread Operator(三个点)
展开运算符(Spread Operator)是 ES6 (ECMAScript 2015) 中引入的一种新的语法特性,表示为三个连续的点(...)。
它允许一个表达式在期望多个参数(用于函数调用)或多个元素(用于数组字面量)或多个变量(用于解构赋值)的位置展开。
#### 1. 数组展开
展开运算符可以用来将数组中的所有元素取出并添加到另一个数组中。
```javascript
let arr1 = [1, 2, 3];
let arr2 = [...arr1, 4, 5]; // [1, 2, 3, 4, 5]
```
典型运用场景:求数组最大值 (最小值)、合井数组等
最大值: `Math.max(...arr)
合井数组 `arr = [...arr1, ...arr2]`
#### 2. 函数参数
它也可以用于函数调用,将数组的元素作为函数的参数。
```javascript
function sum(x, y, z) {
return x + y + z;
}
const numbers = [1, 2, 3];
console.log(sum(...numbers)); // 6
```
#### 3. 对象展开
在 ES2018 中,展开运算符也可以用于对象。
```javascript
let obj1 = { a: 1, b: 2 };
let obj2 = { ...obj1, c: 3 }; // { a: 1, b: 2, c: 3 }
```
这种用法常常用于从现有对象创建新对象或合并对象。
#### 4. 字符串展开
展开运算符也可以用于字符串,将字符串的每个字符转换为数组的元素。
```javascript
let str = "hello";
let chars = [...str]; // ['h', 'e', 'l', 'l', 'o']
```
### 解构赋值
### async/await
## 🤔 常见问题 / 提示 | Tips