CSS
css基本上每个公司也都会问,但是问的不会很深,都是一些常见的问题。
盒模型:
简单地说每个html标签都是一个方块,然后这个方块又包着几个小方块。分别是:margin、border、padding、content。它们的关系是margin包着border包着padding包着content。就像盒子一层一层地包着一样,这就是我们所说的盒模型。盒模型分为IE盒模型和W3C标准盒模型。
W3C标准盒模型
W3C盒子模型的范围包括 margin、border、padding、content,并且 content 部分不包含其他部分;width=content+border+margin+padding;
IE盒模型
width=content+margin;IE 盒子模型的 content 部分包含了 border 和 pading。
垂直居中方法
详细方法见css实现居中方法
三栏布局
详情请见三栏布局;
选择器权重计算方式
清除浮动的方法
flex
什么是BFC、可以解决哪些问题
position属性
如何实现一个自适应的正方形
如何用css实现一个三角形
手写题
防抖和节流
深拷贝
数组去重、数组乱序
手写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
现在基本上都会使用ES6开发。ES6也成为了一个面试必考点。一般面试官都会问用过ES6的哪些新特性,再针对你所回答的进行深入的提问。
let、const、var区别
箭头函数与普通函数的区别
变量的结构赋值
promise、async await、Generator的区别
ES6的继承与ES5相比有什么不同
js模块化(commonjs/AMD/CMD/ES6)
浏览器相关知识
浏览器相关知识几乎是每个公司都会问到的考点,里面涉及的东西也比较多。其中缓存、http2、跨域必问。
从输入URL到呈现页面过程
强缓存、协商缓存、CDN缓存
HTTP2
HTTP状态码
三次握手与四次挥手
跨域(JSONP/CORS)
跨域时如何处理cookie
垃圾回收机制
web安全
一般都会从xss和csrf说起。
https 什么是xss,如何预防 什么是csrf,如何预防 为什么会造成csrf攻击
事件循环
事件循环绝对是一个必考题。其中涉及到宏任务、微任务、UI渲染等的执行顺序,浏览器端的必须要掌握,node端的有精力的最好也能掌握。
框架(vue)
因为我一直用的都是vue框架,所以问的也都是跟vue相关的。vue中的高频题也不外乎双向绑定、虚拟dom、diff算法这些。
watch与computed的区别 vue生命周期及对应的行为 vue父子组件生命周期执行顺序 组件间通讯方法 如何实现一个指令 vue.nextTick实现原理 diff算法 如何做到的双向绑定 虚拟dom为什么快 如何设计一个组件
webpack
webpack也基本上成了必考的内容,一般会问是否配置过webpack、做过哪些优化之类的。
用过哪些loader和plugin loader的执行顺序为什么是后写的先执行 webpack配置优化 webpack打包优化(happypack、dll) plugin与loader的区别 webpack执行的过程 如何编写一个loader、plugin tree-shaking作用,如何才能生效
性能优化
首屏加载如何优化 一个网页从请求到呈现花了很长时间,如何排查