一、let、const命令

①块级作用域
②不存在变量提升
③暂时性死区(只要块级作用域内存在let命令,它所声明的变量就“绑定”(binding)这个区域,不再受外部的影响,在代码块内,使用let命令声明变量之前,该变量都是不可用的)
④不允许在相同作用域内,重复声明同一个变量
⑤全局变量不再与顶层对象挂钩


const 不能修改变量的本质:

全局变量不再与顶层对象挂钩


跨模块常量


必须是严格模式下

二、解构赋值
数组的解构赋值

对应位置

解构不成功 默认值都是undefined

不完全解构

指定默认值 如果指定了默认值 赋值的时候给了个undefined 那么undefined不会覆盖默认值


对象的解构赋值,可以用来解决对象的引用问题

函数的参数也可以解构赋值

解构赋值的用途:






3. 字符串的扩展
①模板字符串
②字符串可以用for of 来遍历

③新增字符串方法





replageAll() 方法




4. 函数的扩展
①函数参数可以设置默认值


②箭头函数

箭头函数不适用于对象中定义方法(且方法中使用this);不适用于绑定事件的回调方法
5. 数组的扩展
①扩展运算符:复制数组、合并数组、将字符串转为数组、
② 数组新增方法

Array.of (),数字、字符串、数组、对象、null.....






实例 at()方法,字符串、数组都可以用,支持负数索引

6.对象的扩展
①属性及方法简写


②将表达式放在中括号里定义属性

③对象的遍历

④super关键字,只能用在对象的简写方法中

⑤扩展运算符

⑥对象新增的方法
Object.is()

Object.assign() 用于合并对象

可用于浅拷贝

为对象添加属性

为对象添加方法

克隆对象

合并多个对象

为属性指定默认值



Object.setPrototypeOf


Object.keys()、Object.values()、Object.entries()




Object.fromEntries()


Object.hasOwn()


7. 类



7.0类的原型




7.1 实例属性新写法



set 、get 关键字

static关键字定义静态方法


静态方法也可以继承


静态属性



私有属性


私有方法




in 运算符判断私有属性




静态块,用来初始化静态属性,只在类生成时运行一次

7.2 类的继承
extends 关键字,让子类继承父类,子类就能访问父类的方法了

像下面这样,子类调用父类的方法会报错,原因是1,2传给了子类,没有传给父类

要想把子类的1,2传给父类,需要使用关键字super,super(x, y)就是把x,y传给了父类

在子类中调用父类的方法,super.say()

super在子类的构造函数中,必须先于子类this之前调用



子类无法继承父类的私有属性和私有方法


静态属性和静态方法也会继承(浅拷贝)




super关键字













类的



7.3 类的注意事项


类的name属性














