Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

前端面试题汇总-问答题 #1

Open
regexp-lin opened this issue Mar 17, 2019 · 0 comments
Open

前端面试题汇总-问答题 #1

regexp-lin opened this issue Mar 17, 2019 · 0 comments

Comments

@regexp-lin
Copy link
Owner

regexp-lin commented Mar 17, 2019

不断更新面试题汇总,并且后续会一个题一个issue,分别给出每个题的答案。欢迎大家一起共建。

看到一个不错的文章,面试题也比较全。

axuebin/articles#39

其他:

  1. 最近项目中遇到什么问题,及解决方案?
  2. 最近有学习什么新技术?
  3. 最近有没有看什么源码?
  4. 平时都会看关注什么社区?
  5. 对加班怎么看?
  6. 有没有什么要了解?
  7. 对未来有没有什么规划?

ES6+ 熟悉程度

        1. ES6+ 语法平时使用有哪些
        2. let 和 var 有什么区别和改进
        3. async await 如何捕获异常,可以在 for 循环里使用吗?promise 如何捕获异常
        4. decorator 使用,npm 包 core-decorators 中 autobind 的实现原理 
        5. 箭头函数 this 的指向
        6. import 和 export 相对于 require 有什么好处
        7. Symbol有哪些应用场景
        8. Proxy和Reflect有哪些用处
        9. ArrayBuffer,TypedArray,  DateView是什么,如何判断计算机用的是小端字节序和大端字节序?
        10. iterator 支持哪些数据类型?

Node

        1. 如何判断当前的运行环境是 node 还是 browser
        2. CommonJS 中 modules 循环应用如何解决 
        3. 如何知道 node 服务的内存占用,以及内存泄漏如何排查 
        4. 如何调试 node 服务
        5. 如何实现一个权限系统 
        6. 如何写一个koa / express 中间件 
        7. 数据库 ORM 框架
        8. node 服务如何充分单机性能, 如何让子进程监听同一个端口, 如果没有 cluster 模块要如何实现, 
            负载均衡是怎么实现的, 怎么去监控服务的情况, 流量的情况, 怎么做到让子进程平滑重启
        8. 如何让一个请求固定落在一个机器上,或者落在某个子进程上
        9. 如何开发一个脚手架以及相应的命令行工具
        10. 如何优化 mysql 慢查询
        11. 服务发生错误了,怎么让它重启  
        12. node 服务异常如何处理
        13. Redis 缓存穿透和缓存雪崩,bitmap和布隆过滤器 
        14. OAuth2.0 和 单点登录 
        15. __filename, __dirname 为什么可以直接引用  
        16. Node 单线程有什么劣势
        17. 如何写扩展模块 
        18. node 是怎么处理二进制的
        19. mq 相关
        20.在 node 中如何实现一个观察者模式
        21. 如何压测?如何观察服务?如何观察服务器? 
        22. 远程调用?gRPC? zk?k8s? docker?
               gRPC基于什么协议,采用什么数据格式通信
        23. stream 的应用场景是什么?
        24. 如何开发npm包,怎么去调试
        25. lerna解决什么问题,monorRepo和multiRepo有什么区别? 
        26. yarn pnp机制原理是什么?(Plug'n'Play) 
        27. 如何在不重启 node 进程的情况下热更新一个 js/json 文件? 这个问题本身是否有问题?  
              答案:https://elemefe.github.io/node-interview/#/sections/zh-cn/module?id=%e6%a8%a1%e5%9d%97%e6%9c%ba%e5%88%b6
        28. vm, eval, function有什么区别
        29. 关于nodejs相关的面试题: https://elemefe.github.io/node-interview
        30. 


JS 基础

        1. 什么是闭包,什么是高阶函数 
        2. 变量提升是什么 
        3. 绑定事件 onclick 和 addEventListener / attachEvent 有什么区别,移动端如何绑定点击事件
        4. 事件冒泡、事件委托
        5. 点击事件的 300 ms 延迟是为什么? 
        6. 如何判断变量是数组、对象、函数、数字、NAN、字符串 
        7. 如何实现单例、装饰者模式、中介者模式、观察者模式,平时怎么使用它们 
        8. 严格模式有什么作用?
        9. 原生JS如何实现一个类? 私有方法、继承?
        10. dom 操作有哪些注意点?如何实现 dom 操作性能最好 
        11. 有哪些异步的方式?Promise 是微任务还是宏任务?setTimeout 呢? 
        12. 如何在函数未执行时就知道函数参数的个数? 
        13. 如何将 json 字符串格式化显示
        14. DomContentLoaded 和 load 事件有什么区别?
        15. 防抖和节流有什么区别以及应用场景、如何实现?
        16. 如何让一个对象的所有字段都不能修改?
        17. 图片懒加载,如何判断在可视区域,说出两种方式
        18. http-only的作用是什么?
        19. h2 有什么缺点?h3有什么特性?
        20. cookie中的samesite作用是什么?知道什么事站点域吗? 
        21. 如何判断一个变量是不是数组? 
        22. 

前端提高

        1. web worker可以做什么,如何使用,worker之间传递数据的方式?大数据如何复制传递?
        2. 如何实现一个文件分片上传,如何实现断点续传,秒传
        3. 浏览器事件循环和node事件循环的区别?
        4. 宏任务和微任务有什么区别?宏任务有哪些?微任务有哪些?requestAnimationFrame是宏任务还是微任务?
        5. 微前端有没有遇到什么问题?父子应用如何通信,如何鉴权?
        6. webpack __webpack_public_path__的作用是什么?
        7. 跨网页通信方案
        8. script 标签的defer和async属性区别
        9. JS引擎垃圾回收机制(加分:新生代、老生代回收方式区别),引申出闭包概念,对闭包的理解; 
        10. https协议是如何实现安全传输(引申:https如何实现中间人挟持)
        11. http2.0协议与http协议的不同,http1.1的keep-alive与http2的多路复用的区别,对其他新的协议有了解吗?
        12. 

移动 web 开发

        1. 前端性能优化有哪些?如何判断页面质量? 
        2. 如何监控页面在用户使用下的质量?异常监控 
        3. cookie 和 localstorage 的区别  
        4. 如何用 localstorage 缓存脚本,以及保证脚本的一致性 
        5. 为什么样式放在页面顶部,脚本放在页面底部?浏览器解析页面的流程 
        6. 如何动态加载脚本、动态加载样式 
        13. 什么是事件循环?浏览器和node事件循环的区别 
        14. http 缓存的种类,https / http2 / spdy / http3 
        15. js 如何调 android, android 如何调 js, jsapi 如何实现 

工程化以及技术选型

        1. vue 和 react 的对比 
        2. 代码质量保证
        3. git 基本操作, git 工作流, 如 rebase, cherry-pick 
        4. 单页面和多页面的设计以及实现 
        5. webpack 打包经验以及常用插件
        6. 如何写一个 webpack 插件
        7. 如何写一个 webpack loader 
        8. 如何写一个 eslint 插件
        9. webpack 打包很慢,如何优化 
        16. webpack HMR 是如何实现 
        17. 如何向 github 提交一个 PR 
        18. require.context 
        19. webpack 多入口如何去掉公共代码?如何动态引入
        23. 如何用 webpack 实现懒加载脚本
        24. babel-runtime和babel-polyfill区别是什么
        25. webpack-dev-server proxy 代理跨域的原理是什么
        26. webpack federation是什么
        27. webpack5有什么新的功能
        28. file-loader, url-loader, thread-loader有什么作用
        29. 如何在项目中引入less, less-loader/css-loader/style-loader 在webpack中引入的顺序是什么
        30. webpack-watch 文件监听的原理,WDS热更新的原理 
        31. webpack output 中hash, chunkhash, contenthash有什么区别
        32. webpack3 如何提取公共模块,webpack4如何提取公共模块,SplitChunkPlugin 
        33. babel plugin 和 presets 有什么区别?plugin和presets的执行顺序是什么?
        34. 什么是插件化?
        35. 如何对代码进行美化?
        36. webpack压缩文件大小的方式有哪些?
        37. vue 开发环境中局部刷新的怎么做的? 
        38. 如果对业务中的代码进行手动分包?
        39. 

框架相关-React

        1. 服务端渲染和同构渲染的异同,以及如何实现 
        2. react-router实现原理,以及后退会清除页面,以及重新渲染该如何优化
        3. redux、rematch、mobx 用法以及区别,mobx 核心原理是什么
        4. react 虚拟dom是怎么实现的,有什么好处 
        5. key, refs 作用以及context 
        6. react hooks 是要解决什么问题 
        7. PureComponent 和 Component 有什么区别 
        8. HOC 和 render props 有什么作用 
        9. styled-component 的原理是什么

框架相关-Vue

       1. v-show和v-if有什么区别
       2. 依赖收集的原理是什么
       3. nextTick原理
       4. vue父子组件如何通信
       5. computed和watch有什么区别
       6. keep-alive的作用和原理
       7. vuex有哪些概念,vuex中mutation和actions有什么区别,mapState和mapActions有什么用处
       8. vue-devtools原理是啥?
       9. vite原理是啥?
       10. vue-devtools原理?
       11. 如何解析单文件vue组件?

ReactNative 相关

       1. React Native 有什么优势? 
       2. React Native 有什么缺点? 
       3. React Native 的线程模型是怎么样的?UI线程(主线程)、JS线程、Native Module线程(访问Native平台API)、Render Thread(绘制UI的实际OpenGL命令)
       4. React Native的存储系统是什么? 
       5. React Native 有哪些性能优化的手段? 加载速度?缩减包大小?
       6. React Native 如何保证稳定性?有哪些监控手段?

Typescript 相关

       1. 说下你们项目中有哪些注意的TypeScript规范? 
       2. type和interface有什么区别?可以说出5个区别,https://juejin.cn/post/7059725643365220366
       2. keyof 和 typeof 关键字的作用?
       3. 简述工具类型 Exclude、Omit、Merge、Intersection、Overwrite、Partial 的作用
       4. 泛型的作用及使用场景
       5. 

其它

       1. RxJS是否有了解?涉及哪些设计模式? 
       2. 

安全方面

        1. XSS 跨站脚本攻击有哪些情况,分别如何避免
        2. CSRF 跨站请求攻击的流程以及如何避免
        3. SQL注入的情况以及如何避免
        4. 如何防止重放攻击,以及如何加密通信参数 

问题调试

        1. 如何发现和排查线上问题 
        2. 如何手机上抓包调试问题 
        3. 如何调试和发现后台问题 

技术选型

        1. 移动端开发选择H5、Hybrid、RN的框架
        2. RN、Weex、Flutter 如何评估它们的性能,以及如何测试帧率? 
        3. RN 和 H5 对比的优势是什么,和 Native 对比的优势是什么?
@regexp-lin regexp-lin changed the title 前端面试题汇总 前端面试题汇总-问答题 Mar 17, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant