常见前端面试题总结

汤姆不是猫 ... 2022-03-09 前端
  • 面试
大约 4 分钟

# HTML篇

# 1. 对html语义化的理解

HTML5语义化标签是指正确的标签包含了正确的内容,结构良好,便于阅读,比如nav表示导航条,类似的还有article、header、footer等等标签。

# 2. html5有哪些更新

# 3. src和href的区别

# 4. 行内/块级元素有哪些?空(void)元素有哪些

# 5. script标签中defer和async的区别

# CSS篇

# 基础

# 1. css选择器及其优先级

# 2. display的属性及其作用

# 3. display的block、inline和inline-block的区别

# 4. display:none与visibility:hidden的区别

# 5. 对盒模型的理解

# 6. css3中有哪些新特性

# 7. 单行、多行文本溢出隐藏

# 页面布局

# 8. 两栏布局的实现

# 9. 三栏布局的实现

# 10. 水平垂直居中的实现

# 11. 对Flex布局的理解及其使用场景

# 定位浮动

# 12. 为什么需要清除浮动?清除浮动的方式

# 13. 对BFC的理解,如何创建BFC

BFC,块级格式化上下文,一个创建了新的BFC的盒子是独立布局的,盒子里面的子元素的样式不会影响到外面的元素。
在同一个BFC中的两个毗邻的块级盒在垂直方向(和布局方向有关系)的margin会发生折叠。
W3C CSS 2.1中的一个概念,它决定了元素如何对其内容进行布局,以及与其他元素的关系和相互作用。

# 14. position的属性有哪些。区别是什么

# 场景应用

# 15. 实现一个三角形

# 16. 如何解决1px的问题

# JS篇

# 基础

# 1. new操作符的实现原理

# 2. 数组有哪些原生方法

# 3. 什么是DOM和BOM?

# 4. 对类数组对象的理解,如何转化为数组

# 5. 对AJAX的理解,实现一个AJAX请求

# 6. js为什么要进行变量提升,它导致了什么问题

# 数据类型

# 7. js有哪些数据类型,他们的区别?

# 8. 数据类型检测的方式有哪些

# 9. 判断数组的方式有哪些

# 10. null和undefined区别

# 11. intanceof操作符的实现及原理

# 12. 为什么0.1+0.2!==0.3,如何让其相等

# 13. ==操作符的强制类型转换规则

# 14. Object.is()与比较操作符“===”、“==”的区别

# ES6

# 15. let、const、var的区别

# 16. 箭头函数与普通函数的区别

# 原型

# 17. 对原型、原型链的理解

# 18. 原型链指向

# 异步编程

# 19. 对promise的理解

它是什么?
Promise是一个方案,用来解决多层回调嵌套的解决方案。它现在是ES6的原生对象。
干嘛用的?
可以把一个多层嵌套的同步、异步都有回调的方法,给拉直为一串.then()组成的调用链。
解决啥问题?
多层嵌套的回调方法中,如果同时存在同步、异步的方法,那么实际执行顺序会混乱。不好调试不好维护。

# 20. promise基本用法

# 21. 对async/await的理解

# 22. async/await对比promise的优势

# 其他

# 23. 对闭包的理解

# 24. 对作用域、作用域链的理解

# 25. 对执行上下文的理解

# 26. 对this的对象的理解

# 27. call()和apply()的区别

# 28. 浏览器垃圾回收机制

# VUE篇

# 基础

# 1. Vue的基本原理

# 2. 双向数据绑定的原理

# 3. MVC、MVVM、MVP的区别

# 4. Computed和Watch的区别

# 5. Computed和Methods的区别

# 6. v-if和v-show的区别

# 7. data为什么是一个函数二不是对象

# 8. 单页面应用于多页面应用的区别

# 9. 对SPA单页面的理解,它的优缺点分别是什么

# 10. React和Vue的区别

# 11. Vue的优点

# 生命周期

# 12. 简单说一下Vue的生命周期

Vue实例有一个完整的生命周期 也就是从开始创建、初始化数据、编译模板、挂载Dom、渲染→更新→渲染、销毁等一系列过程
我们称这是Vue的生命周期。通俗说就是Vue实例从创建到销毁的过程,就是生命周期。
每一个组件或者实例都会经历一个完整的生命周期,总共分为三个阶段:初始化、运行中、销毁。

# 组件通信

# 13. 组件通信的方式有哪些

# 路由

# 14. 路由的hash和history

# 15. 对前端路由的理解

# Vuex

# 16. Vuex的原理以及自己的理解

# 17. action和mutation的区别

# 18. Redux和Vuex有什么区别,它们的共同思想

# Vue 3.0

# 19. Vue3.0有什么更新

# 20. defineProperty和proxy的区别

# 虚拟DOM

# 21. 对虚拟DOM的理解

# 22. diff算法的原理