- prototype 和
__proto__
的关系是什么? - meta viewport 原理
- 域名收敛是什么?
- 前端优化策略列举
- 首屏,白屏时间如何计算
- 闭包
- 作用域链
- ajax如何实现?readyState五种状态的含义?
- jsonp如何实现
- 如何处理跨域
- restful的method解释
- get和post的区别
- 事件模型解释
- 编写一个元素拖拽的插件
- 编写web端cookie的设置和获取方法
- 兼容ie的事件封装
- h5和原生安卓的优缺点
- 编写h5需要注意什么?
- xss和crsf的原理以及怎么预防
- 写一个深拷贝,考虑正则,Date这种类型的数据(超高频)
- 判断DOM标签的合法性,标签的闭合,span里面不能有div,写一个匹配DOM标签的正则
- 获取一段DOM节点中标签个数最多的标签
- 替换日期格式,yyyy-mm-dd替换成 yyyy-dd-mm,可以使用正则的捕获组来实现
- 手写节流和防抖(高频)
- 手写ES6的继承
- float和display:inline-block的区别
- 兼容ie6的水平垂直居中
- css优先级
- css var 自定义变量的兼容性
- 行内元素和块级元素的区别
- position有哪些值,分别有什么含义
- 盒模型
- 实现固定宽高比(width:height = 4: 3)的div,怎么设置
- 伪类和伪元素(高频)
- 什么是flex
- flex:1 具体代表什么?有什么应用场景
- flex-basic是什么含义?
- 淘宝购物车添加商品到购物车的动画(抛物线)
- toolTip的实现
- amd和cmd的区别,怎么了解到这些区别的?是否看过规范?
- require.js常用的方法,解释一下
- accept是什么?怎么用?
- http协议状态码,302和303的区别
- 前端缓存如何实现?etag如何实现?etag和cache-control的max-age的优先级哪个比较高以及为什么?
- cache-control和expire优先级哪个比较高,以及为什么?
- 缓存(强缓存),如何设置缓存(超高频)
- HTTP2的作用?HTTP2的性能优化方面?真的优化很多吗(高频)
- 简单请求和复杂请求(高频)
- 跨域怎么解决?
- HTTPS的整个详细过程
- HTTPS是如何保证安全的
- 深入理解HTTPS的工作原理
- 怎么用get实现post?-就是用get方法但是参数放到request body中
- TCP 和UDP的区别
- 大数相加
- 给5升和6升的水杯如何倒出3升的水
- 知道页面上某个点的坐标,如何获取该坐标上的所有元素
- 直播点赞按钮的冒泡功能如何而实现
- 一班喜欢足球的人60%,喜欢排球的人70%,喜欢篮球的80%,求喜欢足球和排球的占多少
- 二叉树的最大深度
- 另一个树的子树
- 相同的树,对称二叉树,翻转二叉树
- 斐波那契数列
- 合并两个有序的数组
- 打乱数组
- 实现一个Vue自定义指令懒加载(高频)
- 实现Promise.all,Promise.allSettled(高频)
- 写一个简单的diff
- 简单实现一个Virtual Dom
- 实现一个vue的双向数据绑定
- babel的缓存是怎么实现的
- webpack的HMR,怎么配置?
- 浏览器是如何更新的?
- 如何做到页面不刷新也就自动更新?
- webpack-dev-serve,webpack-dev-middleware
- webpack怎么配置mock转发代理,mock的服务,怎么拦截转换的?
- webpackde 的plugin 和loader的编写和顺序?
- webpack的打包构建优化,体积和速度
- DLLPlugin原理,为什么不直接使用压缩版本的js