笔记 ---- 记于21.04.05 - 04.13

1、async/await

 1 标准用法:
 2 function testAwait (x) {
 3 return new Promise(resolve => {
 4 setTimeout(() => {
 5 resolve(x);
 6 }, 2000);
 7 });
 8 }
 9 
10 async function helloAsync() {
11 var x = await testAwait ("hello world");
12 console.log(x);
13 
14 或者:
15 // var x = testAwait ("hello world");//此处x是一个Promise对象
16 // x.then(function(value){
17 // console.log(value);
18 // });
19 }
20 helloAsync ();

2、宽松相等 ==

 1 [ ] == [ ] // false 2 3 解析:两个引用类型,==比较的是引用地址 

3、== 和 !优先级

[ ]== ![ ] // true

解析:(1)! 的优先级高于== ,右边Boolean([])是true,取返等于 false
(2)一个引用类型和一个值去比较 把引用类型转化成值类型,左边0
(3)所以 0 == false 答案是true

4、数字与字符串相加减

'5' + 3
'5' - 3
解析:加号有拼接功能,减号就是逻辑运算
巩固:typeof (+"1") // "number" 对非数值+—常被用来做类型转换相当于Number()

5、数组比较大小

var a = [1, 2, 3],
b = [1, 2, 3],
c = [1, 2, 4]

a == b
a === b
a > c
a < c

答案:false, false, false, true
解析:相等(==)和全等(===)还是比较引用地址
引用类型间比较大小是按照字典序比较,就是先比第一项谁大,相同再去比第二项。

6、动态控制axios的params(get请求),data(post请求) --------- 对象键值可以使用 [ 变量或表达式 ] ★

let method = plat == 'xxx' ? 'get' : 'post';  // 当 plat等于某个值时是get请求,否则为post请求
axios({
  method, // 请求方式
  [ method == 'get' ? 'params' : 'data' ]: data // 对象键值可以使用 [ 变量或表达式 ] data就是传回后端的数据
}).then(() => {}).catch(() => {})

 7、vue中如果对象添加了新属性却渲染不出来,是因为属性原本是不存在这个属性的就算加上了,dom也不会更新的。(节省内存)

解决1:给对象初始化要添加的属性,监听这个属性,这样原来有这个值就会更新dom(但有一个问题就是不太符合逻辑,你其他地方也用不到这个值,占着内存影响性能)
解决2:新建一个对象存这个值,直接渲染这个对象即可

sumTotal: {} ==> sumTotal['lines'] = xxx 新增不会渲染

2、新对象只存要加的这个值
newSumTotal: { lines: ''} ==> this.newSumTotal.lines = xxx
posted @ 2021-04-17 10:04  Amerys  阅读(57)  评论(0编辑  收藏  举报