把最近面试问到的一些问题总结,温习一下,继续磨刀
2021.09.01
CSS方面
- 透明(
opacity与rgba透明)有什么不一样的地方:opacity是会同时让子元素透明的(继承),而rgba的透明仅影响元素的颜色,不会影响子元素以及其他内容 - css垂直居中方法:
position:absolute+top:50%+margin-top(值为height的负值)position:absolute+top:50%+transform:translate (0,-50%)position:absolute+top、bottom均为0+margin:auto- 行内元素
inline+inline-heght(值为height的值) - 块级元素
block:display:inline-block+vertical-align:middle
- css水平居中方法:
position:absolute+left:50%+transform:translate (-50%,0)position:absolute+left:50%+margin-left(值为width的一半)position:absolute+left、right均为0+margin:0 auto- 行内元素
inline+text-align:center - 块级元素
block:margin:0 auto
Javascript方面
- 闭包:
上级作用域中的变量的生命周期因为被下级作用域引用而无法释放,在下级作用域执行完以后所引用的上级作用域的变量才得到释放
- 内存泄漏:
- 不正当的闭包:闭包中函数返回了上一级函数的变量,导致上一级变量无法被回收
- 隐式生成的全局变量:
function中test=1 - 遗忘的定时器:定时器生命周期不挂靠在页面上,若未及时清除则多次打开会多次引用,且无法正常回收
- 游离的
DOM元素:Js持有了DOM元素的引用,从DOM树上移除DOM元素却未将引用移除则造成内存泄漏 - 未及时移除事件监听:未及时进行
removeEventListener操作,进行事件监听所引用的函数及变量无法及时回收 - 遗忘的
Map、Set:强引用,无法自动回收,改用WeakMap、WeakSet
- 回收机制:
- 两种方法:
- 标机回收
- 引用计数
- 两种方法:
- 深拷贝
- 拷贝原型链:使用继承方法,
new相应对象的构造函数即可 - 不拷贝原型链:拷贝
obj.hasOwnProperty(key)为true的属性(hasOwnProperty判断该属性是否为这个对象的方法,在原型链上而不再该对象上则为false)
- 拷贝原型链:使用继承方法,
网络方面
- 浏览器输入url按下回车发生了什么:
DNS解析TCP连接客户端发送请求服务端返回响应TCP断开
- http、https
http明文传输https加密传输(用到CA证书等)
- tcp连接流程(三次握手)
客户端发送syn服务端发送syn+ack客户端发送ack