js es6常用小知识

1、es6之扩展运算符 三个点(…):

   (1)数组合并

aaa: [1,1,2],
bbb: [2,4,3]
console.log([...this.aaa, ...this.bbb])
//[1, 1, 2, 2, 4, 3]

  (2)对象名去重复拼接,

aaa: {a: 1, b: 2},
bbb: {a: 3, c: 2}
console.log({...this.aaa, ...this.bbb})
//{a: 3, b: 2, c: 2}
//可以看到重复对象名会被后者覆盖

  (3)有意思的是

[...'hello']
//  ["h", "e", "l", "l", "o"]

2、字符串拼接,使用反单引号  `${对象}` ,不再需要用传统的类似'a'+'b'+'c'

goodsCategoryName: '访客记录'

console.log(`aa${goodsCategoryName}bb`)

//aa访客记录bb

3、数组去重

aaa: [4,2,3,1,2,1,4,4]
console.log(new Set(this.aaa))
//Set {_c: Set(4)}
//_c: Set(4) {4, 2, 3, 1}
//size: (...)
//__proto__: Set
//可以看出来返回的是个对象,需要返回数组怎么办呢

//用上Array.from就能转为数组
Array.from(new Set(this.aaa))
//[4, 2, 3, 1]

4、参数默认值

function f(a, b='leo'){
    console.log(a, b);
}

f('hi');          // hi leo
f('hi', 'jack');  // hi jack
f('hi', '');      // hi leo

 

<think>首先,用户查询是关于ES6常用的函数或方法总结。我需要基于提供的引用内容来构建回答,因为系统指令要求参考站内引用。这些引用来自[^1]、[^2]、[^3]和[^4],内容涉及ES6的各种特性,如模板字符串、对象简写、箭头函数、数组方法等。 回顾引用: - 引用[^1]:讨论了模板字符串、声明对象简写、对象拓展运算符和箭头函数。 - 引用[^2]:提到了flat()方法用于数组扁平化。 - 引用[^3]:比较了indexOf()和findIndex()方法。 - 引用[^4]:涵盖了Array.of()、find()和Array.from()方法。 我的回答需要结构化清晰,逐步解释ES6常用函数和方法。系统指令还要求: - 使用中文回答。 - 行内数学表达式用$...$,但这里可能不涉及数学,所以可能不需要。 - 独立公式用$$...$$,但同样可能不适用。 - 生成相关问题。 - 在回答末尾自然地添加引用标识。 - 回答结构清晰,帮助用户逐步解决问题。 结构化回答: 1. **引言**:简要介绍ES6及其重要性。 2. **核心内容**:分类总结ES6常用函数和方法,基于引用。 - 字符串相关:模板字符串。 - 对象相关:声明对象简写、对象拓展运算符。 - 函数相关:箭头函数。 - 数组相关:flat()、find()、findIndex()、Array.of()、Array.from()等。 3. **示例**:提供代码示例来演示用法,就像示例中的Python代码那样。 4. **总结**:简要重申关键点。 5. **相关问题**:生成2-3个相关问题。 6. **引用**:在结尾添加引用标识。 确保内容真实可靠:基于提供的引用,不添加外部知识。 生成相关问题: - 基于内容,例如: 1. ES6中箭头函数与传统函数的区别是什么? 2. 如何使用ES6方法处理数组扁平化? 3. ES6的模板字符串有哪些高级用法? 最后,添加引用标识:[^1][^2][^3][^4] 现在,构建回答大纲: - **开头**:回答用户查询。 - **分类总结**: - 字符串方法:模板字符串。 - 对象方法:简写声明、拓展运算符。 - 函数方法:箭头函数。 - 数组方法:flat(), find(), findIndex(), Array.of(), Array.from()。 - **示例**:为每个方法提供简短代码示例。 - **结尾**:总结并生成相关问题。</think>### ES6常用函数和方法总结 ES6(ECMAScript 2015)引入了许多强大的函数和方法,显著提升了JavaScript的开发效率。基于站内引用内容,我将ES6常用函数和方法分为字符串、对象、函数和数组四大类,逐步解释其语法、用途和示例。所有方法均基于真实可靠的引用来源,确保内容准确。 #### 1. **字符串相关方法** ES6增强了字符串处理能力,主要通过模板字符串实现。 - **模板字符串**:使用反引号 `` ` `` 定义,支持多行文本、嵌入变量和表达式。 - **语法**:`${变量或表达式}`,变量名或表达式写在花括号内。 - **用途**:简化字符串拼接,支持动态内容。 - **示例**: ```javascript let name = "Alice"; let age = 25; // 嵌入变量 let info = `我的名字是${name}, 我的年纪是${age}`; // 输出: "我的名字是Alice, 我的年纪是25" // 嵌入函数调用 function greet() { return "Hello"; } let d = `自我介绍${greet()}`; // 输出: "自我介绍Hello" ``` 引用说明:模板字符串允许在字符串中直接插入变量和函数,避免了传统拼接的繁琐[^1]。 #### 2. **对象相关方法** ES6简化了对象操作,包括声明简写和拓展运算符。 - **声明对象简写**:当属性名和变量名相同时,可直接赋值。 - **语法**:`const obj = { key }`,省略重复的键值对。 - **用途**:减少冗余代码,提升可读性。 - **示例**: ```javascript const name = "Bob"; const age = 30; // 简写声明对象 const person = { name, age }; // 等价于 { name: name, age: age } console.log(person); // 输出: { name: "Bob", age: 30 } ``` 引用说明:这种简写方式在定义对象时更高效,尤其适用于数据组装场景[^1]。 - **对象拓展运算符**:使用 `{ ... }` 复制或合并对象。 - **语法**:`let newObj = { ...obj1, ...obj2 }`。 - **用途**:浅拷贝对象属性,支持对象合并。 - **示例**: ```javascript const obj1 = { a: 1 }; const obj2 = { b: 2 }; // 合并对象 const merged = { ...obj1, ...obj2 }; // 输出: { a: 1, b: 2 } ``` 引用说明:拓展运算符提取所有可遍历属性,适用于对象克隆和组合[^1]。 #### 3. **函数相关方法** ES6引入了箭头函数,优化了函数定义。 - **箭头函数**:提供简洁的函数语法。 - **语法**:`(参数) => 表达式` 或 `(参数) => { 代码块 }`。 - 无参数或多个参数时用 `( )` 包裹。 - 单行表达式可省略 `{ }`,自动返回结果;多行需用 `{ }`。 - **用途**:简化回调函数,避免 `this` 绑定问题。 - **示例**: ```javascript // 单行箭头函数(省略 { }) const add = (a, b) => a + b; console.log(add(2, 3)); // 输出: 5 // 多行箭头函数(使用 { }) const greet = (name) => { const message = `Hello, ${name}!`; return message; }; console.log(greet("Tom")); // 输出: "Hello, Tom!" ``` 引用说明:箭头函数让代码更简洁,特别适合数组遍历和事件处理[^1]。 #### 4. **数组相关方法** ES6新增了多个数组方法,提升数据处理能力。 - **flat()**:扁平化嵌套数组。 - **语法**:`arr.flat(depth)`,`depth` 指定扁平层级,`Infinity` 表示完全扁平。 - **用途**:处理多维数组,去除空位。 - **示例**: ```javascript const arr = [1, 2, [3, [4, 5]]]; const flatArr = arr.flat(Infinity); // 完全扁平化 console.log(flatArr); // 输出: [1, 2, 3, 4, 5] ``` 引用说明:`flat()` 方法跳过空位,简化了数组结构处理[^2]。 - **find()**:查找满足条件的第一个元素。 - **语法**:`arr.find(callback)`,回调函数返回布尔值。 - **用途**:替代传统循环,快速定位元素。 - **示例**: ```javascript const numbers = [10, 20, 30]; const result = numbers.find(num => num > 15); console.log(result); // 输出: 20 ``` 引用说明:`find()` 返回第一个匹配值,未找到则返回 `undefined`[^4]。 - **findIndex()**:查找满足条件的第一个元素索引。 - **语法**:`arr.findIndex(callback)`。 - **用途**:比 `indexOf()` 更灵活,支持复杂条件。 - **示例**: ```javascript const data = [{ id: 1 }, { id: 2 }]; const index = data.findIndex(item => item.id === 2); console.log(index); // 输出: 1 ``` 引用说明:`findIndex()` 允许回调函数定义条件,适用于对象数组搜索[^3]。 - **Array.of()**:创建数组,避免参数歧义。 - **语法**:`Array.of(values...)`。 - **用途**:将一组值转为数组,参数数量决定数组长度。 - **示例**: ```javascript const arr = Array.of(1, 2, 3); // 输出: [1, 2, 3] const empty = Array.of(); // 输出: [](空数组) ``` 引用说明:`Array.of()` 解决了 `new Array()` 的行为不一致问题[^4]。 - **Array.from()**:将类数组对象转为真正数组。 - **语法**:`Array.from(arrayLike)`。 - **用途**:处理 DOM 集合或参数对象。 - **示例**: ```javascript const json = { '0': 'a', '1': 'b', length: 2 }; const realArray = Array.from(json); // 输出: ["a", "b"] ``` 引用说明:`Array.from()` 支持可遍历对象转换,增强数据兼容性[^4]。 #### 总结 ES6的这些函数和方法(如模板字符串、箭头函数、flat() 和 findIndex())显著提升了代码简洁性和功能性。它们广泛应用于前端开发、数据处理和API交互中,例如在React或Vue项目中简化状态管理[^1][^2][^3][^4]。建议在实际编码中结合场景选择合适方法,以优化性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值