每日一题,砥砺前行。努力的人,运气一般不会差。
资源汇总
浏览器
Vue
常见问题
html
- H5中新增了哪些标签?标签语义化的好处?
- 常见的行内元素和块级元素?两者的区别是什么?空(void)元素有那些?
- script标签中,defer、async属性与默认行为的区别是什么?
- cookies,sessionStorage和localStorage的区别?
- cookie和session的区别?
- 常见的浏览器内核有哪些?常见的浏览器的兼容性有哪些?原因和解决方法是什么?常用的hack技巧?
- html5有哪些新特性?如何处理html5新标签的浏览器兼容问题?
- 行内、块、空元素举例
- html标签举例
- Doctype作用?知道多少种Doctype文档类型?
- iframe的优缺点
- div+css的布局较table布局有什么优点
css
- 移动端适配1px的问题
- 介绍flex布局
- 其他css方式设置垂直居中
- 居中为什么要使用transform(为什么不使用marginLeft/Top)
- 盒模型
- 垂直居中方法
- 三栏布局
- 选择器权重计算方式
- 清除浮动的方法
- 什么是BFC、可以解决哪些问题
- position属性
- 如何实现一个自适应的正方形
- 如何用css实现一个三角形
js
- 如何解决跨域的问题
- 观察者和发布-订阅的区别
- 介绍纯函数
- 如何设计一个localStorage,保证数据的实效性
- 两个对象如何比较
- 事件循环机制
手写代码
- sum(2, 3)实现sum(2)(3)的效果
- 防抖和节流
- 深拷贝
- 数组去重、数组乱序
- 手写call、apply、bind
- 继承(ES5/ES6)
- sleep函数
- 实现promise
- 实现promise.all
- 实现promise.retry
- 将一个同步callback包装成promise形式
- 写一个函数,可以控制最大并发数
- jsonp的实现
- eventEmitter(emit,on,off,once)
- 实现instanceof
- 实现new
- 实现数组flat、filter等方法
- lazyMan
- 函数currying
ES6
- var、let及const区别
- 箭头函数与普通函数的区别
- 介绍暂时性死区
- ES6中的map和原生的对象有什么区别
- Promise的使用与实现
- 设计实现Promise.all
- 变量的解构赋值
- 声明类与继承:class、extend
- generator(异步编程、yield、next、await 、async)
- 箭头函数this指向问题、拓展运算符
- map和set有没有用过,如何实现一个数组去重,map数据结构有什么优点?
- ES6怎么编译成ES5
- ES6转成ES5的常见例子
- 使用es5实现es6的class
- promise、async await、Generator的区别
- ES6的继承与ES5相比有什么不同
- js模块化(commonjs/AMD/CMD/ES6)
Webpack
- webpack里面的插件是怎么实现的(阿里)
- dev-server是怎么跑起来(阿里)
- 使用过webpack里面哪些plugin和loader(阿里)
- css-loader原理和过程
- 用过哪些loader和plugin
- loader的执行顺序为什么是后写的先执行
- webpack配置优化
- webpack打包优化(happypack、dll)
- plugin与loader的区别
- webpack执行的过程
- 如何编写一个loader、plugin
- tree-shaking作用,如何才能生效
React
- 介绍JSX
- 介绍虚拟DOM
- react异步渲染的概念,介绍Time Slicing和Suspense
- 16.x声明周期的改变
- 16.x中props改变后在哪个生命周期中处理
- pureComponent和FunctionComponent区别
- 介绍高阶组件
- react性能优化
Vue
- vue生命周期及对应的行为
- 双向绑定实现原理,defindeProxy/proxy
- v-if和v-for
- v-for里面,v-key的作用
- vdom的diff算法,如何对比的。
- vue-router
- vuex状态管理
- 看vue源码,看vue3.0有哪些更新的地方
- nextTick的实现原理
- computed和watch的区别?
- 组件间通信方法(父子通信,兄弟通信)
- keep-alive组件
- vue插件写过吗?如何设计一个组件?
- vue父子组件生命周期执行顺序
- 如何实现一个指令
- diff算法
- 虚拟dom为什么快
HTTP
- 什么是HTTP?HTTP协议特点?
- HTTP报文组成
- HTTP请求过程
- TCP三次握手和四次挥手的理解
- 常见Http请求头(阿里)
浏览器
- 浏览器缓存机制
- 渲染机制及重绘和回流
- 用户输入url到页面呈现的过程
- 强缓存、协商缓存、CDN缓存
- HTTP2
- HTTP状态码
- 三次握手与四次挥手
- 跨域(JSONP/CORS)
- 跨域时如何处理cookie
- 垃圾回收机制
Web安全
- https
- 什么是xss,如何预防
- 什么是csrf,如何预防
- 为什么会造成csrf攻击
前端性能优化
- 首屏加载如何优化
- 一个网页从请求到呈现花了很长时间,如何排查
Node
linux
- Linux 754 介绍
算法
- 介绍冒泡排序,选择排序,冒泡排序如何优化?
- 介绍二叉搜索树的特点
- 深度优先和广度优先搜索
- 如何判断链表是否有环