some interview question

- interview
✨✨✨You can Edit this Article on Github site
✏️✏️✏️ This article .MD file was last updated at: Loading ...

下面是个人列出的一些前端面试方面的问题(没有先后顺序,也没有优先级之分)

这个是我自己总结的一些面试内容集合

手动实现的轮子

  • callapplybind
  • 符合 Promise/A+规范的 Promiseasyncawaitco
  • EventEmitter
  • new
  • 双向绑定
  • JSON.stringifyJSON.parse
  • 简易模版引擎

浏览器工作原理系列

JavaScript

前端性能监控系列

webpack

loader && webpack plugins 一些简单的区别:

loader 在生成包期间或之前在单个文件级别工作。

plugins 在 bundle 或 chunk 级别工作,通常在 bundle 生成过程结束时工作。plugins 还可以修改捆绑包本身的创建方式。插件比 loader 具有更强大的控制能力。

loader-vs-plugins.png

webp 图片的浏览器兼容检测

  • canvas 检测:
return /^data:image\/webp/.test(
  document.createElement('canvas').toDataURL('image/webp', 0.5),
)
  • HTTP header:浏览器在图片请求发出的时候,Request Headers 里有 Accept,服务端可以根据 Accept 里面是否有 image/webp 进行判断。
  • new Image:先加载一个 WebP 图片,如果能获取到图片的宽度和高度,就说明是支持 WebP 的,反之则不支持

DSL

docker 和 K8S

React

RN

Event Loop

堆内存与栈内存

koa

HTTPS

HTTPS 采用共享密钥加密和公开密钥加密两者并用的混合加密机制。在交换密钥使用环节使用公开密钥加密方式,之后建立的通信交换报文阶段则使用共享密钥加密方式。

垃圾回收策略

栈使用的是一级缓存, 他们通常都是被调用时处于存储空间中,调用完毕立即释放,由编译器自动分配释放 。存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈

堆则是存放在二级缓存中,生命周期由虚拟机的垃圾回收算法来决定。所以调用这些对象的速度要相对来得低一些。其操作方式类似于数据结构中的树