1225面试题——TCP/UDP、单例模式、回流/重绘、存储方案

158 阅读1分钟

计算机网路

  1. TCP与UDP的区别
  • TCP
    • 面向连接
    • 可靠传输,使用流量控制和拥塞控制
    • 只能是一对一通信
    • 面向字节流
    • 首部最小20字节,最大60字节
    • 适用于要求可靠传输的应用,例如文件传输
  • UDP
    • 无连接
    • 不可靠传输,不使用流量控制和拥塞控制
    • 支持一对一,一对多,多对一和多对多交互通信
    • 面向报文
    • 首部开销小,仅8字节
    • 适用于实时应用(IP电话、视频会议、直播等)

设计模式

  1. 用Class与Function的方式分别实现一个单例模式的案例
class Person{
    // ... 做一些事情
}

function Person () {
    // ... 做一些事情
}

Person.getInstance = (function () {
    let instance;
    
    return function() {
        if (!instance) {
            instance = new Person();
        }
        return instance;
    }
    
})()
console.log(Person.getInstance() === Person.getInstance())

浏览器

  1. 什么是回流与重绘?
  • 回流:render 树中的一部分(或全部)因为元素的规模尺寸,布局,隐藏等改变而需要重新构建。
  • 重绘:完成回流后,浏览器会重新绘制受影响的部分到屏幕中,该过程称为重绘。
  1. 浏览器中存储数据的方案有哪几种
  • Cookie: 存储4KB以下的信息,并且会随请求发送到服务器
  • LocalStorage: 存储2.5MB到10MB之间的信息,持久存储
  • SessionStorage: 存储会话数据,只保持到浏览器关闭
  • IndexedDB: 可以存储大量数据,支持查找。相当于浏览器提供的本地数据库

CSS

  1. 实现一个雪花飘落的动画?
  • 想成花瓣了 0.0
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        body, html {
            position: relative;
            margin: 0;
            padding: 0;
            height: 100%;
            overflow: hidden;
        }
        .snow {
            position: absolute;
            width: 50px;
            height: 50px;
            border-radius: 40% 100%;
            background-image: linear-gradient(135deg, rgb(247, 235, 237), pink, pink, rgb(247, 235, 237));
            animation: downfall 10s linear infinite;
        }

        @keyframes downfall {
            0% {
                top: 0;
                left: 50%;
                transform: rotateX(0) rotateY(0);
            }
            33% {
                top: 33%;
                left: 40%;
                transform: rotateX(45deg) rotateY(45deg);
            }
            66% {
                top: 66%;
                left: 50%;
                transform: rotateX(0deg) rotateY(0deg);
            }
            100% {
                top: 100%;
                left: 60%;
                transform: rotateX(45deg) rotateY(45deg);
            }
        }
    </style>
</head>
<body>
    <div class="snow"></div>
    
</body>
</html>

tips:

  • 这里的雪花就画个圆就行了,或者找个雪花图片
  • 飘落,就是摇摇晃晃的 从上向下掉(简单表示一下就行了)