好的,鱼油!以下是JavaScript ES6(也称为ECMAScript 2015)的主要语法和特性介绍:
### 变量声明
1. **`let` 和 `const`**
- `let`: 用于声明块级作用域的变量
- `const`: 用于声明常量
let variable = 'Changeable';
const constant = 'Unchangeable';
### 箭头函数
- 简洁的函数定义语法,并且不绑定自己的`this`
const add = (a, b) => a + b;
const greet = name => `Hello, ${name}`;
### 模板字符串
- 使用反引号(`` ` ``)定义,可以包含嵌入变量和表达式
const name = 'FishC';
const message = `Hello, ${name}!`;
### 解构赋值
- 解构对象和数组赋值更为简洁
// 数组解构
let [a, b] = [1, 2];
// 对象解构
let {name, age} = {name: 'FishC', age: 3};
### 默认参数
- 函数参数可以有默认值
function greet(name = 'FishC') {
return `Hello, ${name}`;
}
### 展开运算符
- 展开数组和对象
// 数组展开
let arr1 = [1, 2];
let arr2 = [...arr1, 3, 4];
// 对象展开
let obj1 = {a: 1, b: 2};
let obj2 = {...obj1, c: 3};
### 块级作用域
- 使用 `let` 和 `const` 支持块级作用域
{
let letVar = 'Scoped';
const constVar = 'Scoped';
}
// 这里不能访问 letVar 和 constVar
### 类(Classes)
- 用于创建基于原型的面向对象编程
class Person {
constructor(name) {
this.name = name;
}
greet() {
return `Hello, ${this.name}`;
}
}
### 模块(Modules)
- 使用 `import` 和 `export` 导入和导出模块
// 导出
export const name = 'FishC';
export function add(a, b) { return a + b; }
// 导入
import {name, add} from './module.js';
### 迭代器与生成器
- 简化了迭代过程
// 生成器函数
function* generator() {
yield 1;
yield 2;
yield 3;
}
let gen = generator();
console.log(gen.next().value); // 1
console.log(gen.next().value); // 2
### Promise
- 用于处理异步操作
let promise = new Promise((resolve, reject) => {
// 异步操作
if (success) {
resolve('Success');
} else {
reject('Error');
}
});
promise
.then(result => console.log(result))
.catch(error => console.log(error));
### Map 和 Set
- 新的数据结构
// Map
let map = new Map();
map.set('key', 'value');
console.log(map.get('key')); // value
// Set
let set = new Set([1, 2, 2, 3]);
console.log(set.has(1)); // true
console.log(set.size); // 3 (重复的元素会被自动去除)
### Symbol
- 独一无二的数据类型
let sym1 = Symbol('desc');
let sym2 = Symbol('desc');
console.log(sym1 === sym2); // false
### `for...of` 迭代
- 用于遍历可迭代对象(数组、映射、集合等)
let arr = [1, 2, 3];
for (let value of arr) {
console.log(value); // 1 2 3
}
### 模板字符串标签函数
- 可以定制处理模板字符串
function tag(strings, ...values) {
return strings[0] + values[0].toUpperCase();
}
let str = tag`Hello, ${name}`;
console.log(str); // Hello, FISHC
### 模板字符串嵌入表达式
- 可以在模板字符串中使用表达式
let a = 10;
let b = 20;
console.log(`Sum: ${a + b}`); // Sum: 30
这些特性极大地增强了JavaScript的功能和易用性,希望这对你有帮助。如有进一步问题,欢迎随时提问!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |