文章:记一次腾讯微信面试
- 先是看简历上写的项目经验,问一上些项目上的问题,比如如何编写 js-sdk, 如何去修改 weui 库,遇到最大的难题是什么及如何去解决的。
- 数组去重的方法有哪些?
- 如何判断左右小括号是否全部匹配。如
( ( ))()((((()))))
- JS 的事件机制
- 如何劫持 XMLHttpRequest 的 send() 方法,调用他的时候,把参数输出到控制台。
- git 和svn 的区别,git 的本地仓库有什么用呢?
- react 和 vue 的区别
- 为什么简单的项目选择使用 jQuery 而不用 vue 。
- 跨域解决方案有哪些?jsonp 的原理及缺点?及如何判断 JS 加载完成了?IE7不支持 script.onload 事件怎么办?
- 浏览器的渲染机制?
- 浏览器最大并发量限制是多少个?及如何去突破这个限制?
- 缓存机制?
- 内存泄漏,及如何主动的去发现是否存在内存泄漏?
- 你们平时项目的 JS 异常有做上报处理吗?是什么实现的?
- xss 攻击的原理和预防?
- eslint 是怎么使用的?
- webpac打包性能优化,如何分块打包,及 HMR 的实现原理。
- React的虚拟dom是什么?及 diff 算法原理?
- SSR(服务端渲染)的作用,及它有什么缺点???
JS的事件机制,大家可能都知道通过 event loop 来实现的,但是如果再深入点,JS不是单线程的吗,那 event loop是怎么实现的?以及事件其实是分成宏任务和微任务两种的,可能很多人都不知道。再比如,webapck的 HMR 原理,可能很多人都知道当文件修改后,webpack 会对文件进行重新编译并通过 socket 发送通知给浏览器,但再深入一点,浏览器是怎么知道修改了哪里?该怎么去替换模块呢?
------------------------------
文章标题:JavaScript SDK 设计指南
文章地址:https://www.jianshu.com/p/735a4f1db2af
简单看了一部分,还没啥感悟。
介绍的比较全面