into-piece / Step-By-Step

每天一题向前端架构师前进
4 stars 1 forks source link

20200506面试总结 #25

Open into-piece opened 4 years ago

into-piece commented 4 years ago

call apply 作用和区别

说说快速排序

通过把数组中数字与最后一个数字对比分为三部分,左右部分再递归进行大小对比进行排序。

实现随机颜色值

如何提升 webpack 的打包速度

json.stringify 需要注意什么

undefined、任意的函数以及 symbol 值,在序列化过程中会被忽略(出现在非数组对象的属性值中时)或者被转换成 null(出现在数组中时)。函数、undefined 被单独转换时,会返回 undefined,如JSON.stringify(function(){}) or JSON.stringify(undefined)。

tcp udp 的区别

应用场景:

udp:需要处理速度快,可以容忍丢包,如直播,实时游戏之类的

TCP 为什么是可靠连接

数组去重

object 和 map 的区别

object的key只能是字符串,map的key可以是任何数据类型

Object 结构提供了“字符串—值”的对应,Map 结构提供了“值—值”的对应,是一种更完善的 Hash 结构实现。如果你需要“键值对”的数据结构,Map 比 Object 更合适。

你可以通过size属性很容易地得到一个Map的键值对个数,而对象的键值对个数只能手动确认。很多方法都非常方便,has可以得知是否存在某个属性。

说说websocket

HTTP是不支持持久连接的,keep-alive只是把多个连接合并为一个。websocket是h5推出的一个是一个持久化协议,只要建立一次连接,就可以持续接收服务端发送的数据。

解决了HTTP轮询(得不到就一直请求)和long poll(发送堵塞直到得到数据返回)同步有延迟,消耗资源(HTTP是非状态性的,每次建立连接都是需要鉴别身份)

基本数据类型有哪些

string number boolean null undefined object symbol bigint

new 一个对象的过程

new 运算接受一个构造器和一组调用参数,实际上做了几件事:

promise 原理 ,then 实现

在promise中用回调数组保存then传入的回调,等待异步执行完毕后,resolve被调用执行then保存的对应的fullfilled回调或reject回调。

then = (successfunc: Func, failfunc?: Func) => {
    return new Promise((resolve, reject) => {
      try {
        if (this.status === PENDING) {
          successfunc &&
            this.successCallbackList.push((v: any) => {
              setTimeout(() => successfunc(v));
            });
          failfunc &&
            this.failCallbackList.push((v: any) => {
              setTimeout(() => failfunc(v));
            });
        }

        // 第二次第三次then的时候 状态已经改完成功或者失败
        if (this.status === PENDING) {
          const res = successfunc(this.value);
          resolve(res);
        }

        if (this.status === REJECTED) {
          const res = failfunc && failfunc(this.value);
          resolve(res);
        }
      } catch (e) {
        reject(e);
      }
    });
  };

eventloop 机制介绍

async wait 机制

bfc 块级格式上下文

缓存和强缓存

洗牌算法

https 原理

SSL和CA数字证书结合

https分为两个阶段,数字证书验证阶段和数据传输阶段。

react 性能优化

express 和 koa 的区别,洋葱模型 Express 和 Koa 最明显的差别就是 Handler 的处理方法,一个是普通的回调函数,一个是利用生成器函数(Generator Function)来作为响应器。往里头儿说就是 Express 是在同一线程上完成当前进程的所有 HTTP 请求,而 Koa 利用 co 作为底层运行框架,利用 Generator 的特性,实现“协程响应”,异步处理能力大大增强。

koa 没有内置router,view,给了社区很大的自由

如何实现一个画板,如何让画笔更流畅 如何实现扑克牌的反转效果 使用ajax下载文件 如何实现富文本编辑器 node 的模块能在浏览器中执行吗?

react hook 的理解和应用 node 多进程的通信方式 taro的原理 node 服务如何处理错误和异常 http1 和 http2 的区别 两数之和(数组内找出2个数的和值)

作用域,闭包 let var 区别,let 为什么能实现块儿作用域 js 处理代码的过程 react 生命周期执行过程 ,包括子组件 react setState 过 fiber 机制 diff 算法 http 请求过程 缓存机制的处理过程 vue 和 react 区别, koa 中间件机制,解决了什么问题