面试题


2020-2-20 拓展

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作用,如何才能生效

性能优化

首屏加载如何优化 一个网页从请求到呈现花了很长时间,如何排查

Thomas: 5/29/2020, 5:16:48 PM