ES6都有什么
现在继续上一篇文章的内容
6. 扩展运算符(Spread Operator)
扩展运算符 ...
可以用于展开数组或对象,常用于复制或合并数组/对象。
// 数组扩展
const arr1 = [1, 2, 3];
const arr2 = [...arr1, 4, 5];
console.log(arr2); // [1, 2, 3, 4, 5]
// 对象扩展
const obj1 = { a: 1, b: 2 };
const obj2 = { ...obj1, c: 3 };
console.log(obj2); // { a: 1, b: 2, c: 3 }
7. 类(Classes)
ES6 引入了基于原型的面向对象编程的类语法,简化了对象的创建和继承。
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
greet() {
console.log(`Hello, ${this.name}!`);
}
}
const john = new Person('John', 30);
john.greet(); // Hello, John!
8. 模块(Modules)
ES6 引入了原生的模块系统,可以通过 import
和 export
来分割代码。
// module.js
export const PI = 3.14;
export function square(x) {
return x * x;
}
// main.js
import { PI, square } from './module.js';
console.log(PI); // 3.14
console.log(square(2)); // 4
9. Promise
Promise
对象用于表示一个异步操作的最终完成(或失败)及其结果值。它使得处理异步操作更加直观。
const promise = new Promise((resolve, reject) => {
let success = true;
if (success) {
resolve('Operation was successful!');
} else {
reject('Operation failed!');
}
});
promise.then(result => console.log(result)).catch(error => console.log(error));
10. Set 和 Map
- Set:集合类型,存储唯一的值。
- Map:映射类型,存储键值对。
// Set
const uniqueNumbers = new Set([1, 2, 2, 3, 4]);
console.log(uniqueNumbers); // Set { 1, 2, 3, 4 }
// Map
const map = new Map();
map.set('name', 'Alice');
map.set('age', 25);
console.log(map.get('name')); // Alice
11. 符号(Symbol)
Symbol
是一种新的基本数据类型,用于创建独一无二的值,通常用于对象属性的键。
const sym1 = Symbol('description');
const sym2 = Symbol('description');
console.log(sym1 === sym2); // false
总结
ES6 引入了许多新的语言特性,极大地提高了 JavaScript 的开发体验和效率。你可以通过这些新特性让代码更加简洁、清晰,同时避免一些旧版本的 JavaScript 中常见的问题。