前端笔记II

1、Promise:
Promise.any([p1, p2,...]) 接受一组Promise会返回一个新的Promise来响应第一个resolve的Promise,如果其中的一个reject还是会返回第一个被resolve的Promise(如果有,如果没有则会返回reject的Promise);
Promise.all([p1, p2, ...]) 返回值也是一个[]集合,如果所有promise都为resolve则返回一个结果数组,而如果有reject则会在catch()中返回最先被reject得到的结果,常用于发送多个ajax请求且要求返回值有顺序返回运行;
Promise.race([p1, p2,...]) 返回速度最快的状态值,无论resolve还是reject;

2、ES2020:
?.     obj?.[prop] 等价于 obj == null ? undefined : obj[prop];
??      const num = obj?.[prop] ?? 100; 如果obj[prop]的值不为null或undefined,则num等于100。
num = num ?? 100 等价于 num ??= 100;
num = num && 100 等价于 num &&= 100;

3、获取对象属性的方法:
1、Object.keys() 得到对象自身可枚举的属性名;
2、Object.getOwnPropertyNames()得到对象自身所有的属性名;
3、for...in 循环会得到对象自身以及原型链上的可枚举的属性名;

4、Vue3.0:
生命周期钩子onMounted、onUnmounted;
响应式数据声明ref()、reactive();
修改ref声明的数据需要.value取值;
ref常用于基本数据类型的定义,reactive常用于复杂数据类型的定义,ref(1)===reactive({ value: 1 });
在setup语法糖中使用props、emit和watch:const props = defineProps({ 属性名:数据类型 }),const emit = defineEmits(["emitName"]), watch(对象,(newVal, oldVal)=> {});

5、判断数据类型:
1、typeof 除Object类型之外的数据类型;
2、instranceof 判断已知数据类型;
3、constructor obj.constructor === Array ? true|false;
4、Object.prototype.toString().call(obj) === "[object Array]" ? true|false;(通用,首选);

6、对象(数据类型)之间的赋值属于引用传递,修改属性值会同步更改到另一个对象的属性值,使用Object.assign()可以实现仅值传递;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值