前端学习&复习-es6特性

70 阅读3分钟

引言

ES6带来了大量的语法改进和新功能,旨在提高JavaScript的可读性、简洁性和可维护性。以下是一份详尽的ES6新特性列表:

1. let与const

  • let:用于声明块级作用域变量,解决了var存在的变量提升和作用域问题。
  • const:用于声明常量,一旦赋值就不能再更改,同样具有块级作用域。

2. 模板字符串

  • 使用反引号(``)包裹,允许嵌入表达式,简化多行字符串和字符串拼接操作。

3. 箭头函数

  • 更简洁的函数定义语法,如 (param1, param2) => expression 或 () => { ... },自动绑定this值,没有自己的arguments对象。

4. 解构赋值

  • 可以方便地从数组或对象中提取值并赋值给多个变量,如 let [a, b] = [1, 2]; 和 let {x, y} = {x: 1, y: 2};

5. 扩展运算符 (...):

  • 在数组中用于展开元素,如 console.log([...arr1, ...arr2]);
  • 在函数参数中用于收集剩余参数,如 function sum(...numbers) { ... }
  • 用于对象合并,如 {...objA, ...objB}

6. 默认参数值

  • 函数参数可以设置默认值,避免在函数体内进行条件判断,如 function greet(name = "User") { ... }

7. 剩余参数与展开语法

  • 剩余参数(...args)用于表示函数参数列表中的剩余部分,打包成数组。
  • 展开语法(...array)将数组展开为单独的参数。

8. for...of循环

  • 遍历可迭代对象(如数组、Set、Map、Generator等)的值,与for...in循环的区别在于后者遍历对象的键。

9. Classes

  • 为JavaScript引入更接近传统面向对象语言的类定义语法,支持构造函数、继承、静态方法等。

10. 模块(Module)

  • 引入importexport关键字,实现模块化编程,支持静态分析,增强代码组织和重用能力。

11. Promise

  • 用于处理异步操作,提供了一种更优雅的回调机制,支持链式调用和错误处理。

12. Proxy

  • 允许创建一个对象的代理,可以拦截并自定义基本操作(如属性访问、赋值、枚举、函数调用等)的行为。

13. Reflect

  • 提供与Proxy对象密切相关的反射API,用于执行低级别对象操作,如获取属性描述符、调用对象方法等。

14. Symbols

  • 新的数据类型,表示独一无二的、不可变的标识符,用于创建对象属性的私有标识。

15. Generators

  • 生成器函数可以暂停执行并在稍后恢复,用于实现协程和异步编程的迭代器模式。

16. Set和Map数据结构

  • Set用于存储唯一值的集合,无重复元素。
  • Map提供键值对存储,任何类型的数据都可以作为键。

17. WeakSet和WeakMap

  • 类似于SetMap,但其引用是弱引用,当所引用的对象不再被其他对象引用时,垃圾回收机制会自动回收该对象。

18. Array新增方法

  • find()findIndex()fill()copyWithin()entries()keys()values()等方法,增强了数组的操作能力。

它们极大地丰富了JavaScript语言的功能,并对现代前端开发实践产生了深远影响。随着时间推移,后续的ES版本继续在此基础上添加了更多功能和优化。