2022/4/26-2022/4/27

水平垂直居中:完全脱离文档流,设置absolut定位,位置全为0,加margin:auto,达到自适应水平垂直居中。
水平垂直居中的多种方式:https://zhuanlan.zhihu.com/p/263417006

在Promise中,resolve(123),就等于调用promise.then(res),比如这个代码:

function foo1(){
  console.log(2)
}
new Promise((res,rej)=>{
    setTimeout(()=>{
        res(8888)
        console.log('ppp')
    },3000)
}).then(res=>{
    console.log(res)
})
foo1()
结果是:
2
undefined
ppp
8888

学习了内存泄露了知道为什么setTimeout明明只执行一次为什么destory的时候需要清除计时器,这是因为为了减少内存浪费也就是内存泄露。

/**(这一段到时候另起一篇文章进行详细介绍了)
OSI七层模型,TCP/IP四层模型,还有TCP/IP五层模型。
OSI是理论,TCP/IP四层是现实模型,TCP/IP五层是前两者的结合。
既然如此,想要了解这些模型,其实第一个要了解的是TCP/IP四层模型,了解它以后,其它模型也就迎刃而解了。
tcp/ip四层分别是应用层,传输层,网络层,链路层。
TCP的优点在于可靠传输,UDP的优点在于高效。对于DNS解析,会采用UDP协议,因为TCP协议太慢了
**/

js内置对象:Proxy

今天一直在看某号的技术博客,觉得写得非常不错,比如这个typeof和instanceof,为什么typeof null是Object—机器码。
链接:https://mp.weixin.qq.com/s?__biz=MzIxMjExNzQxMQ==&mid=2247484875&idx=2&sn=3fa79924e21c9cd0d6560f1af72b7794&chksm=974bb707a03c3e1103a6fa55f3a19371dc0a73ea6ff3ff1bb5a1c50d9be7889f58faae819262&scene=21#wechat_redirect

我最近要狂刷面试题了。

1.合并对象。js合并对象。

$.extend(obj1,obj2) ---浅拷贝合并
$.extend(true,obj1,obj2) ---深拷贝合并

Object.assign也可以合并对象,可惜了,是浅拷贝,不推荐。
链接:
https://blog.csdn.net/weixin_33971205/article/details/91413536
https://juejin.cn/post/6882549580559777800

关于js中数组:set和map:set对应的是数组,map对应的是对象,两者作用不同。

新学了一种数组去重的方式,通过map结构。代码:

function unique(arr) {
  let map = new Map();
  let array = new Array();  // 数组用于返回结果
  for (let i = 0; i < arr.length; i++) {
    if(map .has(arr[i])) {  // 如果有该key值
      map .set(arr[i], true); 
    } else { 
      map .set(arr[i], false);   // 如果没有该key值
      array .push(arr[i]);
    }
  } 
  return array ;
}
var arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null,
  NaN, NaN,'NaN', 0, 0, 'a', 'a',{},{}];
console.log(unique(arr))
//[1, "a", "true", true, 15, false, 1, {…}, null, NaN, NaN, "NaN", 0, "a", {…}, undefined]

可能会看着云里雾里的,但是可以先看下else那一块:array.push(arr[i]),它发生在map没有该key值的时候,这是因为,如果map没有该key值,那就证明了arr[i]第一次出现,就可以array.push(arr[i])来存储不重复的数组了。如果已经出现过,就不用存储在array里了。这样,利用MAP不会出现重复key值这个方法就能够实现数组去重了。
链接:https://www.php.cn/js-tutorial-461751.html#:~:text=js%E6%95%B0%E7%BB%84%E5%8E%BB%E9%87%8D%E6%96%B9%E6%B3%95,ludes%E5%8E%BB%E9%87%8D%E3%80%82

2022/4/27

之前学过数组去重,现在想一下对象数组去重是什么样子的?
链接:https://www.cnblogs.com/xingguozhiming/p/10296727.html
方法一,创建一个obj对象,通过判断对象数组的每一个元素(用obj.hasOwnProperty)去判断该对象数组的该属性值是否重复,如果不重复,就存入obj,如果重复,就删除。这样,array即对象数组就可以实现

面试一:https://juejin.cn/post/7061588533214969892

页面加载慢的优化办法。https://blog.csdn.net/youwen21/article/details/111368388?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.pc_relevant_default&utm_relevant_index=2

promise解决回调地狱的方式就是延迟传入函数。传统的方式会造成回调地狱,回调地狱就是函数嵌套,非常复杂。现在在promise中,回调函数是通过后面的then方法传入的,这叫做回调函数延迟绑定。
链接:https://zhuanlan.zhihu.com/p/411376585

Vue中:

关于created和mounted:(什么时候用created,什么时候用mounted)https://blog.csdn.net/interestANd/article/details/121329103
最后分析那里写的不错,created太多了,可以分点写到mounted,如果有dom操作,也要写在mounted里,echarts也写在mounted里

keep-alive应用条件:https://juejin.cn/post/6994332073209102350
(一个经典场景,多种筛选条件生成的列表,这个数据来之不易,点击查看详情返回后,这个列表因为keep-alive可以被缓存)

计算属性的 getter 和 setter:计算属性是无法直接赋值的,它依赖于别人,别人变了它才会变,为了能够进行计算属性赋值操作,就需要setter。https://blog.csdn.net/VVVZCS/article/details/82313632

JAVAScript:

const fruits = [5,6,7,8];
fruits.splice(1, 0, 9);
结果:5,9,6,7,8

关于js数组方法,浅拷贝还是深拷贝的问题,两个方法,concat和slice。
这两个方法用来进行复制的代码如下:

let arr = [1,2,3]
let new_arr1 = arr.slice(0)
let new_arr2 = arr.concat()

比如concat,它是浅拷贝(看二维数组,比较原值和复制的值就知道了):https://www.jianshu.com/p/c721590f7f04
(同理,slice也是浅拷贝。)
不管是二维数组还是对象数组,这两个方法都是浅拷贝。
常用的深拷贝代码是:JSON.parse(JSON.stringify(需拷贝对象)) 这个方法有很多缺点,比如转化时间戳,转化函数,NaN,Infinity等都不可以哦。
链接:https://www.jianshu.com/p/52db1d0c1780

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值