ES6简介
ES6(ECMAScript 2015)引入了一些非常有用的特性和语法改进,使得JavaScript变得更加简洁和强大。以下是一些常用的ES6特性:
let 和 const
let
: 用于声明变量,具有块级作用域。const
: 用于声明常量,具有块级作用域,一旦赋值不可再修改
let name = "Alice";
const age = 30;
箭头函数
箭头函数提供了更简洁的函数表达方式,并且不绑定自己的this
。
const add = (a, b) => a + b;
console.log(add(2, 3)); // 5
模板字符串
使用反引号(``
)来创建多行字符串,并支持嵌入变量。
const name = "Alice";
const greeting = `Hello, ${name}!`;
console.log(greeting); // Hello, Alice!
解构赋值
允许从数组或对象中提取数据,并将它们赋值给变量。
// 原生写法
const admin = { user:"xxx",password:321};
const user = admin.user;
const password = admin.password;
console.log(user); // xxx
console.log(password); // 321
// ES6
const person = { name: "Alice", age: 30 };
const { name, age } = person;
console.log(name); // Alice
console.log(age); // 30
const numbers = [1, 2, 3];
const [first, second] = numbers;
console.log(first); // 1
console.log(second); // 2
默认参数
允许为函数参数设置默认值。
const greet = (name = "Guest") => `Hello, ${name}!`;
console.log(greet()); // Hello, Guest!
console.log(greet("Alice")); // Hello, Alice!
扩展运算符(...)
用于数组或对象的展开和合并。
const numbers = [1, 2, 3];
const moreNumbers = [...numbers, 4, 5];
console.log(moreNumbers); // [1, 2, 3, 4, 5]
const person = { name: "Alice", age: 30 };
const updatedPerson = { ...person, location: "New York" };
console.log(updatedPerson); // { name: "Alice", age: 30, location: "New York" }
类(Class)
引入了基于原型的面向对象编程的新语法。
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
greet() {
console.log(`Hello, my name is ${this.name}`);
}
}
const alice = new Person("Alice", 30);
alice.greet(); // Hello, my name is Alice
模块化(import/export)
提供了模块导入和导出的标准方式。
// module.js
export const PI = 3.14;
export function add(a, b) {
return a + b;
}
// main.js
import { PI, add } from './module.js';
console.log(PI); // 3.14
console.log(add(2, 3)); // 5
Promise
提供了处理异步操作的新方式。
const fetchData = () => {
return new Promise((resolve, reject) => {
setTimeout(() => resolve("Data fetched"), 1000);
});
};
fetchData().then(data => console.log(data)); // Data fetched
Map 和 Set
Map
是键值对的集合,Set
是值的集合,所有值都是唯一的。
const map = new Map();
map.set("name", "Alice");
console.log(map.get("name")); // Alice
const set = new Set([1, 2, 2, 3]);
console.log(set); // Set(3) { 1, 2, 3 }