# JavaScript ES6 新增语法


ES6(ECMAScript 6)是 JavaScript 的一个重要的版本更新,它引入了许多新的语法和功能,使得 JavaScript 更加强大和灵活。下面是一些 ES6 新增的语法和功能的笔记。


## 1. const 和 let 变量声明


ES6 引入了两个新的变量声明关键字:`const` 和 `let`。与传统的 `var` 关键字相比,`const` 声明的变量是常量,无法再次赋值,而 `let` 声明的变量是块级作用域的局部变量。


```javascript

const PI = 3.14;

let count = 0;


// 块级作用域

{

  let count = 1;

  console.log(count); // 输出 1

}


console.log(count); // 输出 0

```


## 2. 箭头函数


箭头函数是一种简洁的函数定义方式,它使用 `=>` 符号来定义函数。它可以更简短地定义函数,并且继承外部作用域的 `this` 值。


```javascript

// 传统函数定义

function add(a, b) {

  return a + b;

}


// 箭头函数

let add = (a, b) => {

  return a + b;

};

```


## 3. 解构赋值


解构赋值是一种快捷的方式从数组或对象中提取值,并赋值给变量。


```javascript

// 数组解构赋值

let [a, b, c] = [1, 2, 3];

console.log(a, b, c); // 输出 1, 2, 3


// 对象解构赋值

let {x, y} = {x: 1, y: 2};

console.log(x, y); // 输出 1, 2

```


## 4. 模板字符串


使用模板字符串可以更方便地拼接字符串,还可以在字符串中插入变量。


```javascript

let name = 'Alice';

let greeting = `Hello, ${name}!`;

console.log(greeting); // 输出 "Hello, Alice!"

```


## 5. Promise


Promise 是一种用于处理异步操作的对象,它可以更优雅地处理回调地狱的问题。


```javascript

function getData() {

  return new Promise((resolve, reject) => {

    // 异步操作

    setTimeout(() => {

      if (/* 操作成功 */) {

        resolve(data);

      } else {

        reject(error);

      }

    }, 1000);

  });

}


getData()

  .then(data => {

    console.log(data);

  })

  .catch(error => {

    console.log(error);

  });

```


这只是 ES6 新增语法的一小部分,还有许多其他的功能,如模块化、类、默认参数、扩展操作符等等。ES6 的引入使得 JavaScript 的编写更加高效和优雅,提升了开发者的生产力。


注意:ES6 的部分语法在某些老版本浏览器中可能不支持,所以在使用时需要注意浏览器的兼容性。可以使用 Babel 等工具将 ES6 代码转换为兼容性更好的 ES5 代码。