ES6 13个核心新特性详解与实战

作者:闭包旅人

时间:2026-10-25

浏览:430

本文系统梳理ES6标准中的13项核心新特性,涵盖变量声明(let/const)、模板字符串、解构赋值、函数默认参数、Spread/Rest操作符、箭头函数、for-of循环、Class类语法、模块导入导出、Promise异步处理、Async/Await、Symbol类型及Set集合。通过具体代码示例解析各特性的语法规范与应用场景,帮助开发者快速掌握ES6编程技巧并提升代码质量。

文章目录

1. let 与 const

let 用于声明变量,const 用于声明常量。

  • 常量在定义后不可重新赋值,但对象类型的常量例外,因为其内部属性仍可修改,仅引用地址不变。
  • 使用 const 声明时必须同时初始化赋值。
  • let 和 const 均具备块级作用域特性。

块级作用域指任何一对花括号({ 和 })包裹的代码块内部定义的变量,在块外部不可访问;函数作用域则指定义在函数内部的参数和变量在函数外部不可见。

const a = 1
a = 0 //报错

2. 模板字符串

利用反引号``可以实现字符串拼接与嵌入表达式,语法格式为 ${}。

3. 解构赋值

通过 {} 语法结构可对数组和对象进行解构操作。

1. let 与 const

1. let 与 const

4. 函数参数默认值

函数定义时可为参数指定默认值,若调用时未传参则使用默认值。

// ES6;
function printText(text = 'default') {
    console.log(text);
}

5. Spread / Rest 操作符

Spread / Rest 操作符符号为 ...,具体含义需结合上下文判断。

  • 当用于迭代器(Iterator)中时,它作为 Spread 操作符,用于展开容器中的元素进行遍历。
function foo(x,y,z) {
  console.log(x,y,z);
}
 
let arr = [1,2,3];
foo(...arr); // 1 2 3
  • 当用于函数传参时,它作为 Rest 操作符,用于收集剩余参数。
function foo(...args) {
  console.log(args);
}
foo( 1, 2, 3, 4, 5); // [1, 2, 3, 4, 5]

6. 箭头函数

  • 无需使用 function 关键字即可创建函数。
  • 若函数体仅包含单个表达式,可省略 return 关键字。
  • 箭头函数中的 this 始终指向函数定义时所在作用域的 this 值,而非调用时的上下文。
//es5
var fun = function() {

}
//es6
var fn = () => {

}

7. for...of 循环

  • for...of 遍历获取的是键值对中的值。
  • for...in 遍历获取的是键值对中的键。

8. Class 类

ES6 引入了 class 语法,但这并非全新的对象继承模型,而是原型链继承的语法糖表现形式。

class Student {
  constructor() {
    console.log("I'm a student.");
  }
 
  study() {
    console.log('study!');
  }
 
  static read() {
    console.log("Reading Now.");
  }
}
 
console.log(typeof Student); // function
let stu = new Student(); // "I'm a student."
stu.study(); // "study!"
stu.read(); // "Reading Now."

9. 模块导入与导出

  • 使用 import 关键字进行模块导入。
  • 使用 export default 关键字进行模块默认导出。

10. Promise

Promise 对象用于更优雅地处理异步请求,避免回调地狱。

  <script>
    new Promise((resolve,reject) => {
      setTimeout(function() {
        resolve('成功了!')
      },1000)
      // reject("失败了,wuwu")
    }).then(data => {
      console.log(data)
    }).catch(err => {
      console.log(err)
    })
  </script>

11. async/await

async/await 语法比 Promise 更好地解决了回调地狱问题,使异步代码看起来像同步代码。

async function() {
  awiat fn()
}

12. Symbol

Symbol 是 ES6 新增的基本数据类型,用于生成唯一标识符。

13. Set 集合

Set 用于存储任何类型的唯一值,即集合中保存的元素不重复,属于类数组结构。

arr = [1,2,3,1]
let arrNew = new Set(arr)
arrNew = [1,2,3]

类数组并非真正的数组,需通过Array.form(arrNew)转换为数组,例如 arrNew 才是数组。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章