你瞅啥呢

2024-05-10 ES6新特性小总结

  • ES6,即ECMAScript 2015,js的一个重量级版本,相较于ES5,它更新了一些新特性以及语法。
  1. let和const关键字:用于声明变量。
    1. let:定义块级局部变量。
    2. const:定义常量,注意:如果是定义对象或数组,那么该对象或数组中的值可被改变,但引用不能改变。
  2. 箭头函数:提供了一种更简洁的函数声明语法,并且没有自己的thisargumentssupernew.target
    1. 带参数一般写法:const a = (a) => console.log(b);
    2. 没有参数写法可省略参数括号:const a = b => console.log(b);
    3. 带函数体写法:const a = () => { console.log(1 + 1); }
  3. 解构赋值:允许从数组或对象中提取值,并赋值给不同的变量。
    1. const arr = {a: 1,b:2}; const {a,b} = arr; console.log(a);
  4. 模板字符串:使用反引号(``)来定义字符串,可以在其中嵌入表达式。
    1. const a = 7; console.log(`123456${a}`);
  5. 展开运算符(...):可以在函数调用、数组字面量和对象字面量中展开数组或对象。
    1. 复制数组,用它复制数组可避免浅拷贝的问题,用法为const arr = [1,2,3];const arr2 = [...arr];这样就能的到新的复制arr内容的数组arr2
    2. 合并两个数组:const arr1 = [1]; const arr2 = [2]; const arr3 = [...arr1,arr2]; console.log(arr3); // [1,2,3];
    3. 注意!展开运算符仅适用于单层引用数据类型结构,当你用这种方式去期望深拷贝数据时是无法拷贝数据的全部内容,仅能拷贝内容的引用地址,也就是说会污染源数据
  6. Symbol类型:新增的一种原始数据类型,用于创建唯一且不可变的标识符。
    1. 一种特殊不可变的数据类型,即便值是一样的,但还是不相等的,表示唯一标识。
    2. 例:const a = Symbol("一");const b = Symbol("一");console.log(a === b); // false
    3. 用作对象的key,避免键冲突
  7. Map和Set数据结构:Map是键值对的集合,键可以是任何类型;Set是值的集合,且值唯一;二者是两种数据结构。
    1. Map 对象保存键值对,并且任何值(对象或原始值)都可以作为键或值。
    2. Set 对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用。
  8. Proxy对象:用于定义基本操作的自定义行为,如属性查找、赋值、枚举、函数调用等。
  9. Reflect对象:提供与对象交互的方法,如定义、检查、修改对象属性等。
  10. 模块化:引入importexport关键字,支持ES6模块的导入和导出。
  11. 类(class):基于原型的继承的语法糖,提供了更接近传统面向对象编程的语法。
  12. Promise对象:用于处理异步操作,提供了一种更简洁的链式调用方法。
  13. async/await:基于Promise的异步编程语法糖,使异步代码看起来更像同步代码。
  14. 生成器(Generator):函数的一种特殊类型,可以暂停和恢复其执行。
  15. 迭代器(Iterator):使对象能够按一定顺序访问其各个元素。
  16. 默认参数:允许在函数定义时设置参数的默认值。
  17. 剩余参数(Rest parameters):使用...语法表示一个函数可以接收任意数量的参数。
  18. 扩展运算符(Spread Operator)与剩余参数(Rest Operator):两者在语法上都是...,但用途不同。扩展运算符用于展开数组或对象的元素,而剩余参数用于收集函数参数。
    1. const arr = [1,2,3,4]; const newArr = [...arr,5]; // [1,2,3,4,5]  
  19. Array.from()方法:将类数组对象或可迭代对象转换为真正的数组。
  20. Object.assign()方法:将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。
posted @   叶乘风  阅读(73)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示