阿托的秋招面试笔记

130 阅读2分钟

把最近面试问到的一些问题总结,温习一下,继续磨刀

2021.09.01

CSS方面

  1. 透明(opacityrgba透明)有什么不一样的地方:opacity是会同时让子元素透明的(继承),而rgba的透明仅影响元素的颜色,不会影响子元素以及其他内容
  2. 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
  1. 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方面

  1. 闭包:
    • 上级作用域中的变量的生命周期因为被下级作用域引用无法释放,在下级作用域执行完以后所引用的上级作用域的变量才得到释放
  2. 内存泄漏:
    • 不正当的闭包:闭包中函数返回了上一级函数的变量,导致上一级变量无法被回收
    • 隐式生成的全局变量:functiontest=1
    • 遗忘的定时器:定时器生命周期不挂靠在页面上,若未及时清除则多次打开会多次引用,且无法正常回收
    • 游离的DOM元素:Js持有了DOM元素的引用,从DOM树上移除DOM元素却未将引用移除则造成内存泄漏
    • 未及时移除事件监听:未及时进行removeEventListener操作,进行事件监听所引用的函数及变量无法及时回收
    • 遗忘的MapSet:强引用,无法自动回收,改用WeakMapWeakSet
  3. 回收机制:
    • 两种方法:
      1. 标机回收
      2. 引用计数
  4. 深拷贝
    • 拷贝原型链:使用继承方法,new相应对象的构造函数即可
    • 不拷贝原型链:拷贝obj.hasOwnProperty(key)true的属性(hasOwnProperty判断该属性是否为这个对象的方法,在原型链上而不再该对象上则为false)

网络方面

  1. 浏览器输入url按下回车发生了什么:
  • DNS解析
  • TCP连接
  • 客户端发送请求
  • 服务端返回响应
  • TCP断开
  1. http、https
  • http明文传输
  • https加密传输(用到CA证书等)
  1. tcp连接流程(三次握手)
  • 客户端发送syn
  • 服务端发送syn+ack
  • 客户端发送ack