目录
试题集锦
HTML
- [x] DOCTYPE
- [x] 如何在html中开启/关闭 DNS 预读取
- [x] script 标签 defer 或 async 属性的作用及区别
- [x] 常见机型的媒体查询
- [x] 常用meta头
CSS
- [x] 垂直居中
- [x] 块格式化上下文(BFC)
- [x] flexbox 的布局效果
- [ ] 可读规范的CSS代码
- [ ] 盒模型
JAVASCRIPT
- [x] 为什么 typeof null 是 Object
- [x] 函数有哪几种执行方式
- [x] 函数的 call apply 方法
- [x] 作用域链、[[scope]]、词法作用域
- [x] 闭包
- [x] this
- [x] new 操作符做了什么
- [x] 原型链与继承
- [x] 准确判断变量类型的方法和原理
- [x] eval 及其安全问题
- [x] require 和 import 的原理
- [x] ES6: js引擎怎么实现 class 关键字
- [x] ES6: 理解原理并手写实现 promise
- [ ] ES6: 原生的 跟 promise A+ 的区别
- [x] 类数组和数组的区别
- [ ] ES6: 理解 generator 并手写一个简单 co
- [ ] ES6: 什么是 symbol
- [ ] ES6: 什么是迭代器
DOM-BOM
- [x] dom和bom
- [x] 事件委托哪些事件不冒泡
- [x] 原生Ajax流程
- [ ] addeventlistener 第三个参数的作用
- [ ] ajax优点和缺点
- [ ] cookie和session的区别以及优缺点
- [ ] cookie怎么跟服务器通信的
- [ ] 前端路由原理 及如何监听url变化
- [ ] 事件模型
Node
- [ ] express静态资源中间件
- [ ] node 的 eventEmitter
- [ ] nodejs如何进行进程通信
- [ ] js事件队列和node队列说下原理 区别是什么
- [ ] node的单线程异步是怎么实现的
jQuery
- [ ] jQuery 除操作 dom 还能做什么
- [ ] jQuery 对于不冒泡的事件怎么处理
- [ ] jQuery 的优缺点
Vue
- [x] vue 实现 computed
- [ ] vue 实现 双向绑定
- [x] vue 组件通信问题
- [ ] vue-router 两种模式的原理
- [ ] element 源码是如何跨组件通信的
- [ ] 组件中/ vuex 中对数据操作的区别
- [ ] vuex的数据是存储在哪里的
React
- [x] 解决 react 部分数据变化导致组件全部重新渲染问题
- [x] react 浅比较
- [ ] 实现 react 的 diff
- [ ] redux触发数据更新的整个流程
- [ ] react-saga 是什么
- [ ] shouldcomponentupdate 是什么 举例应用场景
- [ ] purecomponent
Angular
[ ] angular 核心
[ ] 实现 angular 数据绑定
[ ] angular1 和 angular2 的区别
[ ] angular1 的父子通信
[ ] angular1 脏检查
[ ] AOT 预编译和 JIT 预编译
[ ] vue 和 原生 / react / angular 的区别
[ ] vuex 和 redux 异同
性能优化
计算机网络
- [x] GET 和 POST 的区别
- [x] HTTP
- [x] 了解 TCP 协议中的三次握手、滑动窗口
- [ ] 断点续传
- [ ] 网络服务质量
- [x] HTTPS
- [ ] HTTPS 的过程
- [ ] SSL / TLS
- [ ] dns预加载
- [ ] tcp/udp有什么区别
算法
- [x] 无向图的深度优先搜索和广度优先搜索
- [x] 非递归遍历二叉树
- [x] 二叉树的中序遍历
- [ ] 10w的数据量用什么排序算法
- [ ] 写10个排序 列出时间复杂度 和 使用场景
- [ ] 怎么找出连续子数组的最大和(如果和为负数,则重新开始,如果和为正数,则继续加,然后比较大小,选出最大和即可。)
- [ ] 手写快排还有二叉树遍历 快排实现原理
- [ ] 存在一无序整形数组,找出其中连续出现的数字区间(var list = [7,2,11,2,0,1,2,4,5,10,13,14,15]; 输出:["0->2","4->5","7","10->11","13->15"])
- [ ] 存在一无序且不重复的数组 data ,取出 n 个数,使其相加和为 sum 。给出算法的时间/空间复杂度(function getResult (data, n, sum) {})
- [ ] 了解哪些排序算法
- [ ] 怎么均匀的取到圆中的随机点(极限)
正则表达式
- [x] 邮箱正则
- [ ] 将 ejs 风格的分隔符<%= %>变为 mustache 风格的
Coding
- [ ] css: 一个div,设置其父级div宽度为100px,再设其padding-top为20%。问div高度
- [ ] css: 实现硬币旋转效果,即圆形绕自身轴线360持续旋转
- [ ] css: 知道几种0.5px的实现
- [x] js: 如何将string转换成html
((s,d)=>(d.innerHTML=s,d.childNodes))('<input>', document.createElement('div'))
- [x] js: 最简单的生成 [0, 1, 2, ...range] 数组的方法
[...Array(range).keys()]
- [x] js: 实现 map 函数
- [x] js: 数组去重
- [ ] js: 实现remove函数,删除object的属性
- [ ] js: 函数式编程中compose的实现 (https://segmentfault.com/a/1190000008394749) (实现一个compose(arr)({index:0}}) var arr=[fn1,fn2,fn3]; function fn1(index,next){a.index++;next()}... 返回value和next,next()表示调用下一个函数)
- [ ] js: 实现 js 对象深度克隆函数
- [ ] js: 实现拖拽
- [ ] js: 手写实现 bind
- [ ] js: 深拷贝浅拷贝
- [ ] 用 net 实现 HTTP
- [ ] 手写 socket 报文
- [ ] 防抖/节流分别是什么,应用场景是什么,有什么区别
- [ ] 如何优化递归?尾递归。手写尾递归。
- [ ] 不用defineproperty 怎么实现双向绑定
浏览器
- [x] 跨域
- [ ] 浏览器线程,js的异步是怎么实现的
- [ ] chrome的审查元素怎么实现的
- [ ] 浏览器缓存原理
- [ ] event loop的机制
- [ ] 渲染树、重排重绘、分层渲染等(进阶)
移动端
- [x] 解决移动端点击300ms的延迟
- [ ] 移动Web开发和PC Web开发的区别
- [ ] 响应式布局
- [ ] 移动端的手势和事件
- [ ] 怎么提高移动页面的渲染性能
- [ ] 移动端适配
- [ ] 设计按照苹果的尺寸给图,如果适配各种安卓尺寸,图片不能拉伸压缩
数据结构
- [ ] 怎么检验链表是闭合的
前端工具
- [ ] webpack的优势
- [ ] webpack、gulp、rollup做比较
- [ ] wepack常用配置
- [ ] babel配置
- [ ] es6转es5工具有哪些
- [ ] 登陆时的用户校验
- [ ] 热更新的实现原理
调试
HTTP
- [x] 常见 HTTP 状态码
- [ ] 不同请求类型的区别
- [ ] 如何缓存
- [ ] HTTP2
- [ ] 常用http头部
- [ ] http1.1 缺点
老生常谈
- [ ] 遇到什么困难、怎么解决、未来怎么避免
- [ ] 技术选型、怎么看待框架、jq和框架各解决什么问题
- [ ] 介绍下v8的新特性
- [ ] js底层的实现
综合知识考察
- [ ] 用户从输入url到最终页面展示,这个过程中发生了什么
- [ ] 老板反馈页面打开白屏,而你手机上是正常的,怎么办
- [ ] 我页面上有个动画一卡一卡的性能不行,怎么优化
- [ ] 项目中存在哪些问题,如何解决的
- [ ] 如何防止项目开发时间delay
- [ ] 为什么要做单元测试、集成测试
- [ ] 线上项目如何快速低定位是哪一行的错误
前端延伸知识点
- [ ] 性能优化
- [ ] NodeJs
- [ ] 构建
- [ ] 热门框架
- [ ] Web安全
- [ ] 图形动画
- [ ] Web游戏
- [ ] RN
安全
- [ ] 以场景的形式描述xss xsrf sql注入,以及如何防范
设计模式
- [ ] 举例说明常用的设计模式
未分类
- [x] c语言怎么实现字符串转整型
- [ ] ssr原理
- [ ] 为什么有些数据是可迭代数据?除了实现了iterator接口 还有什么别的原因嘛
- [ ] 怎么按顺序执行异步
- [ ] 如何在不红杏的情况下 优化外国官网
- [ ] critical path
- [ ] mock数据 怎么生成
- [ ] 数据库表怎么设计?
- [ ] hybrid了解吗?与native通信这块了解吗
- [ ] 运营商劫持?
- [ ] 服务器具有什么功能
- [ ] 数据结构会吗
- [ ] csrf是什么 如何用node处理csrf
- [ ] AMD有什么特点
- [ ] aouth是干嘛的
- [ ] 单点登录的原理
- [ ] cookie的path
- [ ] 做视差滚动 什么库
- [ ] hls和rtmp的区别
- [ ] hash map怎么实现
- [ ] ts的泛型
- [ ] seo
- [ ] 协作开发怎么版本控制
- [ ] ast
- [ ] mysql事务
- [ ] 锁
- [ ] 实现seajs
- [ ] 慢启动
- [ ] 网络阻塞排查
- [ ] 网站资源用不同域名做处理的好处
- [ ] store 的数据怎么传到组件的props里面
- [ ] 虚拟dom
- [ ] pwa webComponents webAssembly了解吗
学习笔记
操作系统
- [x] 《现代操作系统》读书笔记——线程