变量 let1.存在块级作用域:变量在块级作用域中不会污染全局作用域。
2.不存在声明提升:变量只能在声明之后使用。
3.不影响作用域链:变量在作用域链中正常使用。
常量 const1.声明时要赋初始值。
2.常量一般使用大写。
3.常量的值不能修改。
4.存在块级作用域。
5.数组和对象元素修改子元素不算是对常量修改(因为常量对应的地址并没有改变)。

解构赋值--提取数组和对象中的值并赋值给变量简单结构数组解构:

对象解构:
注:解构时声明的变量要在对象中存在,解构时可以不考虑 对象key的顺序(把变量a,b换位置也可以正常解构)

复杂结构对象的复杂结构:

起别名:

模板字符串 一对反引号 支持输出换行用于变量拼接

用于dom拼接

对象简化写法--如果对象中的属性名和属性值相同,可以简化书写省略属性值

省略匿名函数

箭头函数 =>写法



this
this指向的是函数声明时所在作用域并且不会被改变。
箭头函数的this

普通函数的this

注意:
1.箭头函数不能作为构造实例化对象

2.不能使用arguments变量

箭头函数的使用场景
适用于:与this无关的回调,如:定时器、数组方法
不适用于: 事件回调(因为this指向不正确)、对象中声明方法
参数默认值习惯把带有初始值的形参放到最后书写
基本写法


结合解构赋值 并赋初始值

rest参数 获取函数实参注:...args要放到参数最后

展开运算符(扩展运算符) 将数组转逗号分割的字符串应用场景
1.数组合并

2. 数组克隆--深拷贝

3. 伪数组转数组 (dom对象、arguments等)
技术参考:b站 – 【尚硅谷】 推荐大家去看
https://www.bilibili.com/video/BV1uK411H7on?p=1&vd