第 027 期 精选前端核心面试题及解答 - 基础篇

197 阅读3分钟

这里为大家准备了:前端面试问题之基础篇所有问题。

HTML

1说几个 HTML5 新增的标签?这些标签的语义是什么?
2什么是标签语义化?标签语义化有什么好处?
3DOCTYPE 是什么?有什么用?

CSS

选择器

1样式生效的优先级是怎样的?
2如何提升 CSS 选择器性能?

样式规则

1哪些属性会继承?
2如何实现单行文字的超出隐藏?
3如何实现多行文字的超出隐藏?
4background-size 的 contain, cover 的相同点和不同点什么?
5如何用 visibility, display,opacity 隐藏元素?有什么区别?
6opacity: 0.5 和 background: rgba(0, 0, 0, .5) 有什么不同?
7硬件加速有什么用?如何触发硬件加速?

布局

1什么是盒模型? content-box 和 border-box 的区别是什么?
2块级元素,行内元素,行内块级元素有什么区别?
3什么是 BFC,有哪些使用场景?
4如何用 Flex 布局实现水平,垂直方向的 居中对齐,两端对齐?换多行显示?如何撑满容器的剩余部分?容器空间不够,如何缩小?
5绝对定位的定位规则是怎样的?
6如何实现绝对定位元素的水平居中?
7position 属性有哪些值?
8两个元素有重叠部分,哪个显示在上面的规则是怎么样的?
9容器的 y 方向 overflow:auto。子元素要超出容器的 x方向怎么处理?

响应式

1怎么做响应式布局?
2如何适配移动端 1px 的问题?
3如何实现宽度是屏幕宽度的正方形?

兼容性

1你遇到过哪些兼容性问题,是怎么解决的?
2如何减少兼容性问题?

JavaScript

数据类型和操作符

1 == 和 === 有什么区别?
2如何实现保留两位小数?
3哪些值在 if 中是 false 的?
4去掉字符串前后的空格?
5实现:_风格的字符串改成驼峰的风格的字符串。如 hello_joel 改成 helloJoel。
6函数的参数 arguments 如何转化成 数组?
7哪些数组方法会遍历数组? 8去掉数组中 id 相同的。数组: [{id: 3}, {id: 4}, {id: 3}, {id: 5}]。
9如何判断一个对象是不是空对象?
10如何遍历对象的属性?

基础语法

1var 和 let 有什么差别?
2什么是闭包?闭包有哪些使用场景?
3this 在五种场景(默认绑定、隐式绑定、显式绑定、new绑定、箭头函数绑定)的指向是怎样的?
4聊聊 JavaScript 的基于原型链的继承?

DOM

事件

1事件的冒泡和捕获是什么? 哪些事件会冒泡?如何阻止事件冒泡?
2什么是事件委托? 有什么用?
3window.onload 和 DOMContentLoaded 的区别?

BOM

异步编程

1Promise 解决了什么问题?
2除 Promise 外还有哪些异步编程解决方案?
3用递归 和 Promise 实现异步的串行控制。
4微任务和宏任务的差别是什么?

存储

1本地存储 storage 和 Cookie 有什么差别?
2能读取 cookie 策略是什么?

其他

1什么是防抖?什么是节流?有哪些使用场景?

网络知识

1HTTP 有哪些状态码? GET 和 POST 有什么区别?URI 的组成部分?什么是跨域及解决方案?Cookie 有哪些属性及作用?HTTP2 是什么,做了哪些改进?
2TCP 和 UDP 有什么区别?TCP 三次握手的过程是怎样的?如何理解 TCP 的 keep-alive?