温习日志
——2023年1月14日下午 b站学习地址
学习内容
- 解构数组
- 通过
const [a, b, c] = arr
可以将arr数组的前三个值根据位置赋值 - 也可以通过
const [a, b, , c] = arr
将arr数组的前两个和第四个赋值直接跳过第三个 - 对于以前交换变量的值需要第三方变量,现在只需
[a, b] = [b, a]
即可 - 对于解构的值可以提前给个默认值,
const [a = 1, b = 2] = arr
,如果arr没有相应的值,则会自动将默认值赋值
- 通过
- Spread操作运算符
- 将可迭代的对象进行拓展开来,如
const arr2 = [...arr1];
- 可以通过Spread操作运算符做浅拷贝
- 将可迭代的对象进行拓展开来,如
- Rest模式和参数
- 对于参数如果是多余的,则可想Spread一样,
const [a, b, ...c] = arr
,将arr的前两个值赋值给a, b剩余的参数组成c数组 - 对于对象解构,
const {a, ...b} = obj
,将对应的a属性赋值,将obj对象中剩余的属性组成新的对象赋值给b - 在平常函数中,可以接受多个参数,可以使用
function (...rest) {}
获取的参数组成数组
- 对于参数如果是多余的,则可想Spread一样,
- 短路
- 在或中,如果第一个为真值则或后面的表达式不再执行
- 在和中,如果第一个为假值则和后面的表达式不再执行
- ??
- 使用方法
const a = b ?? 10
如果b是null或者undefined的话则直接将10赋值,如果b存在则直接将b的值赋值给a
- 使用方法
- 逻辑运算符
- 对于与、或,
const a = a || b
可以直接写成,const a ||= b
- 对于访问属性的与或判断,会在对象中留下访问的属性,如果不存在的话
- 可以通过
const a.duix &&= b
实现不存在的属性也不会在对象中留下属性:undefined
- 可以使用
obj?.duix
如果obj存在的话就是obj.duix
,如果obj不存在直接返回undefined
- 对于与、或,
- 循环数组
- 可以通过
for (const value of arr) {}
,循环数组,value就是arr的值 - 也可以通过
for (const [i, value] of arr.entries())
,i是数组的索引,value是数组的值 - 对于对象有
Object.keys(obj)
和Object.values(obj)
和Object.entries(obj)
返回的是数组
- 可以通过
- 练习1,2
明日计划
- 明天不确定因素太多,因为明天有寿席
- 根据具体的时间安排,优先考虑学习js的基础知识
- 其次是到晚上后学习express + 数据库