ES6常用语法

发布于:2024-04-16 ⋅ 阅读:(159) ⋅ 点赞:(0)

1.声明变量: let 和 const

let 声明的变量可以被修改;const 声明的变量是常量,不可被修改。

let x = 10;
const PI = 3.14;

2. 箭头函数

更简洁,绑定了词法作用域的 this 值。不会创建自己的 this,而是继承了上下文中的 this 值,这意味着箭头函数的 this 始终指向定义时所在的作用域。

// 传统函数定义
function add(a, b) {
    return a + b;
}

// 箭头函数定义
const add = (a, b) => a + b;

// 词法作用域绑定
function Person() {
    this.age = 0;
    setInterval(() => {
        this.age++; // this 指向 Person 对象
    }, 1000);
}

// 隐式返回,可省略 return 关键字
const add = (a, b) => a + b;

// 适用于回调函数
const arr = [1, 2, 3];
const doubled = arr.map(num => num * 2);

3. 模板字符串

使用反引号 \` ${} 来插入变量或表达式,使字符串拼接更简洁。

const name = 'Alice';
console.log(`Hello, ${name}!`);

4. 解构赋值

允许按照一定模式从数组或对象中提取值,然后赋值给变量

const [x, y] = [1, 2];
const {name, age} = {name: 'Alice', age: 30};

5. 默认参数

函数参数可以指定默认值,当调用函数时没有传入对应参数时,使用默认值。

function greet(name = 'World') {
    console.log(`Hello, ${name}!`);
}

6. 展开运算符

展开运算符(`...`)可以将数组或对象展开为独立的元素,或者将多个参数合并为数组。

const arr1 = [1, 2, 3];
const arr2 = [...arr1, 4, 5];
const obj1 = {a: 1, b: 2};
const obj2 = {...obj1, c: 3};

7. 类和继承

ES6 引入了类(class)和继承的语法糖,更易于面向对象编程。

class Animal {
    constructor(name) {
        this.name = name;
    }
    speak() {
        console.log(`${this.name} makes a noise.`);
    }
}

class Dog extends Animal {
    constructor(name) {
        super(name);
    }
    speak() {
        console.log(`${this.name} barks.`);
    }
}

const dog = new Dog('Spot');
dog.speak(); // Spot barks.

8. Promise 对象

Promise 是一种用于异步编程的对象,用于表示一个异步操作的最终完成或失败及其结果值

Promise 对象的特点:

  1. 状态pending(进行中)、fulfilled(已成功)和 rejected(已失败)。状态一旦改变,就不会再变,从 pending 到 fulfilled 或者从 pending 到 rejected。

  2. 状态转换只能由 pending 转换为 fulfilled 或者 rejected,并且一旦状态确定就不可再改变。

  3. 结果值:状态变为 fulfilled 时,会传递一个结果值;状态变为 rejected 时,会传递一个拒绝原因(错误信息)。

const promise = new Promise((resolve, reject) => {
    // 执行异步操作
    setTimeout(() => {
        // 异步操作成功,调用 resolve 并传递结果值
        resolve('Success!');
        // 异步操作失败,调用 reject 并传递拒绝原因
        // reject('Error!');
    }, 1000);
});

promise.then(
    // 成功时执行的回调函数
    result => {
        console.log(result); // 'Success!'
    },
    // 失败时执行的回调函数
    error => {
        console.error(error); // 'Error!'
    }
);

网站公告

今日签到

点亮在社区的每一天
去签到