前端面试题

1. javascript 判断一个函数是否为一个类

JS 中判断一个函数是否为一个类

2. V8 垃圾回收机制

3. 短链接生成算法

短链接介绍

短链接就是把普通网址,转换成比较短的网址。

应用:比如在微博这些限制字数的应用,或短信中这种按字数计费的应用

例子:https://github.com/Maple-pro/blog -> https://dwz.cn/abcdefgh

  • dwz.cn 是域名
  • abcdefgh 是参数

原理:

  • 将长链接通过一定方式生成短链接
  • 访问短链接是实际访问的是短链接服务器,然后依据短链接的参数找回对应的长链接
  • 302 重定向跳转

为什么要采用 302 重定向?

  • 301 是永久重定向,302 是临时重定向
  • 使用 301 可以减少服务器压力
  • 使用 302 可以获取获取短地址被点击的次数

实现原理

问题核心:怎么生成短链接,使得可以通过短链接的参数找到对应的长链接

哈希?🙅

存在哈希碰撞问题,即两个相同

自增序列算法 🙆

摘要算法 🙆

Reference

待补充