js
4/28/2024 js
# ES6 的新特性有哪些?
- 声明块级作用域的变量。let 和 const 声明变量的方式,取代了 var 关键字。
- 箭头函数(Arrow Function),简化了函数的书写方式,this指向
定义时
包含它的最近一层非箭头函数
上下文的this值。。 - 模板字符串(Template String),允许在字符串中使用变量和表达式,而不需要使用字符串连接符号 `${}`
- 解构赋值(Destructuring Assignment),允许从数组和对象中提取值并赋值给变量。
const {x, y, z} = obj;
- 默认参数(Default Parameter),在定义函数时可以给参数设置默认值。
function func1(a = 1)
- 扩展操作符(Spread Operator),可以在函数调用时展开数组或对象。
func1(...obj)
- 类(Class),引入了面向对象编程中类的概念。
- 模块化(Module),提供了一种组织代码的方式,可以将代码分割成独立的模块,方便重用和维护
- Promise,用于处理异步操作,避免回调地狱的问题。
- for…of 循环,用于遍历可迭代对象(如数组、Map 和 Set)中的元素。
for (element of iterable)
,对于Map元素是for (let [key, value] of map)
- Symbol,引入了一种新的数据类型,用于创建唯一的属性键。
- Map 和 Set,引入了两种新的数据结构,分别用于存储键值对和唯一值。
- Proxy,允许在对象和函数调用等操作前后添加自定义的行为。
- Reflect,提供了一组可以操作对象的内置方法,可以替代一些对象方法(如 Object.defineProperty)的实现。
- Promise.allSettled,用于处理多个 Promise 的状态并返回一个包含每个 Promise 状态的数组。
# 说一些你经常用到的数组的方法
- splice(index, deleteCount, ...newAddEl) 在指定索引处删除若干个元素然后加入一些元素
- join(separator?: string) 以指定连接符连接数组的元素
- filter((current, index)=>{}) 筛选符合条件的元素
- find 找到第一个符合条件的元素
- findIndex 找到第一个符合条件的元素的索引
- concat 连接多个数组
- map,forEach,reduce 遍历数组
- push,pop 在末尾插入删除
- shift,unshift 在开头删除插入
- some 是否有部分符合条件
- sort 排序,reverse 反转
# 前端优化
- 避免过多的回流和重绘