2020面试准备集合
先列题目,而后加答案。html
JS
- Eventloop
- js为何要实现成单线程的,有什么好处?
- 进程线程的区别
- 闭包的含义、原理、优缺点、使用场景、如何回收
- JS数据类型有哪些,怎么作类型判断?
- 类型转换有哪些?
- 执行上下文
- new操做符作了什么
- 解释构造函数、对象、原型链之间的关系
- 继承的几种方式以及优缺点
- 实现原型式继承
- 实现构造函数继承
- 面向对象的属性
- 设计模式有哪些,项目中使用到哪些
- 浏览器事件有哪些过程? 为何通常在冒泡阶段, 而不是在捕获阶段注册监听? addEventListener 参数分别是什么 ?
- new String('a') 和 'a' 是同样的么?
- js中的装箱和拆箱了解吗?
- 节流与防抖原理
- 面向对象和非面向对象有什么区别?
- 高阶函数是什么,怎么去写一个高阶函数
- 为何reducer要是个纯函数,纯函数是什么?
- 简单说一下PWA
- call/apply/bind原理实现
- 操做dom有哪些方法?
- 怎么用原生js实现一个轮播图,以及滚动滑动?
- 怎么实现上传下载的功能?
- Map有哪些方法?
- 知不知道伪数组对象?
- 如何用原生JS来读写Cookie?
- 本地存储
- PWA
- 简述自定义事件实现方法
- parseInt() 和 array 的 map 方法的参数
- JSON 对象的深度克隆
- objec.freeze和Object.seal的区别
- 编写函数 convert(money) ,传入金额,将金额转换为千分位表示法
- js浮点数运算不精确,如何解决
- 实现函数的柯里化
- 前端存储方式,以及它们之间的优缺点
- 怎么从十万个节点中找到想要的节点,怎么快速在某个节点前插入一个节点?
- 如何找到一个字符串中最长的两个字符串?
- 正则用过吗?exec, 匹配一个手机号?去空格?
- 给你一亿个数,是连续的,怎么找出两个不存在的数
- 怎么实现一个sleep ,手写一个promise
- 作一个表格,一分钟刷新一次,怎么实现
- 有了解WebWorker的实现原理吗,私下有实践过吗
- 平时作项目有没有考虑过内存的问题?怎么解决的?
- 异步处理的方案有哪些?
- 模块化的演化过程?
- 模块化介绍一下,什么是编译时优化?
- 怎么打断点,如何肯定一个结果来自于哪一个函数
数组
- Array的unshift() method的做用是什么?如何链接两个Array?如何在Array里移除一个元素?
- 数组去重
- 数组乱序
- 有哪些排序算法,时间复杂度是多少?何时快排的效率最低?
- 改变数组和不改变数组的方法分别是哪些?
- 给定一个数组和一个正整数N,求一个和小于N的最长连续子数组
- 给定两个有序数组,合并为一个有序数组。不准使用 js 的 concat 和 sort 方法
- sort()的原理
- 不产生新数组,删除数组里的重复元素
- 冒泡排序和快速排序的区别
ES6
- Promise的原理
- ES6 module
- 谈一下generator函数
- 说一下对async和await的理解
- Map有哪些方法?
- 箭头函数,this指向
- 扩展符的做用
- 新增数据类型有哪些?
- 新增的数据结构有哪些?
- ES6 里 let 和 var 的区别
- 解释ES6的暂时性死区
http
- 讲一下AJAX Request
- 跨域
- 页面加载的过程(输入URL后发生了什么?)
- TCP三次握手和四次挥手,拥塞控制
- TCP和UDP的区别
- HTTP请求头和响应头都有些什么字段?
- SSL加密原理
- HTTP/HTTPS/HTTP2有什么区别?
- HTTP2的优点
- HTTP 里的304状态码了解吗?100和307?
- 进程通讯,有名和匿名管道
- 浏览器缓存
- cookie、session、token的区别?
- 若是浏览器关闭了再打开, 请求仍是from cache吗?
- Service Worker 了解过么?
- 为何用 token 就能够防止 csrf 攻击?
- token 的刷新机制是怎么样的, 为何这么设置?
- 静态文件的浏览器缓存如何实现
- method有哪些方法,分别是什么意思?post和put的区别?post与get的区别?
- Ajax 底层实现,readystate 有哪些
- 怎么实现标签页的通讯
- OSI七层模型
- 反向代理知道么,Nginx
- 有没有了解过CDN
- 怎么实现标签页的通讯
框架
- vue响应式原理
- vuex原理
- 组件间的通讯方式及原理
- MVC和MVVM了解吗?有什么区别?
- Vue是怎么实现对数组变化的检测的
- key的做用是什么?
- jsx的原理
- Virtual DOM 和 diff 算法
- 脚手架作了什么功能?
- vue-router原理
- Vue 里 v-if 和 v-show 的区别
- react生命周期
- react hook 相比较 class, 哪些不太容易实现?
- react 怎么作优化?
- 聊一下高阶组件 hoc
- 聊一聊组件设计, 领域模型
- redux原理
- setState 更新机制
- fiber架构
- react hook 原理
- 原生事件和 React事件的区别
- 高阶组件(HOC), Mixin, hook 对比和用处.
- webpack打包流程
- webpack如何处理图片、 CSS 文件?
- webpack作了什么优化?
- webpack热更新原理
- webpack 底层 Tapable 原理
- webpack 如何实现异步加载
- babel原理
- transform-runtime有什么做用?
- babel-runtime和babel-polyfill的做用和区别
- babel 如何将字符串解析成 AST ?
- 讲一下AST 语法树
- webpack 和 gulp的对比
- node事件循环
- node架构中的容灾
- node 的多线程,高并发,安全
- 谈一下stream
- pm2原理
- 有没有读过 egg 源码
- 小程序跟 h5 的区别是什么? [小程序底层实现]
- 讲一下 taro 小程序的底层原理,跟 mpvue 的区别 [AST, babel
- SPA 项目如何监控 pv, uv 值
- 聊一下 axios .有什么优势, 跟 fetch, ajax对比
- axios 为何既能够在浏览器发请求,又能够在node层发请求?
- 客户端渲染和服务端渲染的区别
监控
- 如何处理项目的异常
- error 怎么捕获?
- SPA 项目如何监控 pv, uv 值?
- 如何在用户刷新、跳转、关闭浏览器时向服务端发送统计的数据?
- 错误日志上报遇到的问题.
- 负载均衡方式和容错机制
- 怎么计算在一个页面上的停留时间
移动端
- 移动端如何优化首页白屏时间过长 ?
- 移动端优化方式? 离线包是如何实现的?
- 有几种webview?
- webview和native的交互方式有哪些?
- 怎么排查交互中的错误?
- 浏览器内核有哪些,移动端用的是哪一个?
- 移动端页面适配解决方案
安全
- 前端安全方面有没有了解?XSS和CSRF如何攻防?
- sql 注入知道么?
- 爬虫与反爬虫
其余
- 文件指纹怎么生成?
- npx是什么?
- 说一下对 package.json 的理解,它都有哪些做用?
- webgl用过吗?
- svg和canvas的区别
- git push -u 是什么意思
- git rebase解释下,git merge 和git rebase区别
- 能写一个二叉树么,怎么去遍历
- 伪类知道吗,有哪些?
- Xhtml和html的区别?
- 二维码怎么工做的,扫描pc端的二维码,怎么让pc端登陆?
- 怎么作一个实时的聊天系统
- 当消息有延迟的时候,怎么保证消息的正确顺序?
- Mysql的基本写法
- mysql的索引用的什么
- mySql和noSQL区别
- meta标签
- em,rem,px的区别
- 简述动画写法
- 维护的公共组件须要发布大更新, 如何作?
- 聊一下微服务serverless?
- 微前端了解吗?
- 可视化表单了解过么?
- typeScript了解过吗?
- 平时处理过什么兼容性?
欢迎关注本站公众号,获取更多信息