|
发表于 2024-9-18 18:32:30
|
显示全部楼层
好的,鱼油!以下是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 小助理,如未能正确解答您的问题,请继续追问。 |
|