前端面试

一. js面试题

1. 原始值和引用值类型及区别

2. 判断数据类型typeof、instanceof、Object.prototype.toString.call()、constructor

3. 类数组与数组的区别与转换

4. 数组的常见API

5. bind、call、apply的区别

6. new的原理

7. 如何正确判断this

8. 闭包及其作用

9. 原型及原型链

10. prototype与__ptoto__的关系

11. 继承的实现方式及比较

12. 深拷贝与浅拷贝

13. 防抖和节流

14. 作用域和作用域链、执行期上下文

15. DOM常见的操作方式

16. Array.sort()方法与实现机制

17. Ajax的请求过程

18. JS的垃圾回收机制

标记清除法:垃圾收集器给内存中的所有变量都加上标记,然后去掉环境中的变量以及被环境中的变量引用的变量的标记。在此之后再被加上的标记的变量即为需要回收的变量,因为环境中的变量已经无法访问到这些变量。

19. JS中的String、Array和Math方法

20. addEventListener和onClick()的区别

21. new和Object.create的区别

22. DOM的location对象

23. 浏览器从输入URL到页面渲染的整个流程(涉及到计算机网络数据传输过程、浏览器解析渲染过程

24. 跨域、同源策略及跨域实现方式和原理

25. 浏览器的回流(Reflow)和重绘(Repaints)

26. JavaScript中的arguments

27. EventLoop事件循环

28. 宏任务与微任务

29. BOM属性对象方法

30. 函数柯里化及其通用封装

31. JS的map()和reduce()方法

32. “==”和“===”的区别

33. setTimeout用作倒计时为何会产生误差


二. HTML/CSS

1. CSS权重及其引入方式权值的用法

2. CSS引入方式和权重

3. 用CSS画三角形

4. 未知宽高元素水平垂直居中(方案及比较)

5. 元素种类的划分

媒体查询使用方法@media6. 盒子模型及其理解

7. 定位方式及其区别(文档流)

8. margin塌陷及合并问题

9. 浮动模型及清除浮动的方法

10. CSS定位属性

11. display及相关属性

12. IFC与BFC

13. 圣杯布局和双飞翼布局的实现和区别

14. Flex布局

15. px、em、rem的区别

16. Less预处理语言

17.vh与vw

18. H5的语义化作用及语义化标签

19. WebWorker与WebSocket

20. CSS3动画

21. js动画与CSS3动画对比

22. 响应式布局和自适应布局详解

23. HTML5的新特性

24. Less和Sass使用


三. HTTP与计算机网络

1. TCP/IP协议分层管理

2. 三次握手和四次挥手的过程和原因

3. HTTP方法

4. GET和POST区别

5. HTTP报文的结构

6. 常见HTTP状态码

7. Cookie相关首部字段

8. HTTP与HTTPS

9. 常见的Web攻击分类

10. TCP与UDP区别

11. 存储机制localStorage、sessionStorage与Cookie存储技术


四、ES6

1. let、const和var的概念与区别

2. 变量提升与暂时性死区

3. 变量的结构赋值

4. 箭头函数及其this问题

5. Symbol概念及其作用

6. Set和Map数据结构

7. Proxy

8. Reflect对象

9. Promise(手撕Promise A+规范、Promise.all、Promise相关API和方法)

10. Iterator和for...of(Iterator遍历器的实现)

11. 循环语法比较及使用场景(for、forEach、for...in、for...of)

12. Generator及其异步方面的应用

13. async函数

14. 几种异步方式的比较(回调、setTimeout、Promise、Generator、async)

15. class基本语法及继承

16. 模块加载方案比较(CommonJS和ES6的Module)

17. ES6模块加载与CommonJS加载的原理

五. 前端工程化

1. webpack的基本概念和配置

2. loader与plugin原理与实现

3. Webpack的模块热替换及实现

4. webpack优化:

提高webpack打包速度,减少打包时间的优化方法

让 Webpack 打出来的包体积更小的优化方法

六. 手撕代码部分

1. Promise(A+规范)、then、all方法

2.Iterator遍历器实现

3.Thunk函数实现(结合Generator实现异步)

4. async实现原理(spawn函数)

5. class的继承

6. 防抖和节流

7. Ajax原生实现

8. 深拷贝的几种方法与比较

9. 继承的几种实现与比较

10. 未知宽高的元素水平垂直居中

11. 三栏布局的实现

12. 两栏布局的实现

13. React高阶组件

14. 数组去重

15.几种排序算法的实现及其复杂度比较

16. 前序后序遍历二叉树(非递归)

17. 二叉树深度遍历(分析时间复杂度)

18. 跨域的实现(JSONP、CORS)


七、数据可视化 

1. Canvas和SVG的区别

2. 在考虑设计可视化图表时,结合Canvas和SVG特性会怎么取舍

3. 常见的可视化组件库

4. 可视化组件库如Echarts的设计思路

5. 一些偏向底层的可视化组件库和前端框架结合方面需要考虑哪些问题

6. 可视化组件如何做到数据驱动

八、Vue面试题

九、nodejs

1. NodeJS基本概念与特点

2. CommonJS规范、核心模块

3. Node的异步I/O

4. Node的内存控制

5. Node构建网络服务(TCP、HTTP、Web Socket服务等)

6. Node的进程


10.前端面试题

十、计算机基础 

1. 计算机系统

2. 线程与进程

3. 常见的git指令

4. Linux相关指令

5. 其他类型的编程语言(如Java)

6. 数据库

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容