这里为大家准备了:前端面试问题之基础篇所有问题。
HTML
「1」说几个 HTML5 新增的标签?这些标签的语义是什么?
「2」什么是标签语义化?标签语义化有什么好处?
「3」DOCTYPE 是什么?有什么用?
CSS
选择器
「1」样式生效的优先级是怎样的?
「2」如何提升 CSS 选择器性能?
样式规则
「1」哪些属性会继承?
「2」如何实现单行文字的超出隐藏?
「3」如何实现多行文字的超出隐藏?
「4」background-size 的 contain, cover 的相同点和不同点什么?
「5」如何用 visibility, display,opacity 隐藏元素?有什么区别?
「6」opacity: 0.5 和 background: rgba(0, 0, 0, .5) 有什么不同?
「7」硬件加速有什么用?如何触发硬件加速?
布局
「1」什么是盒模型? content-box 和 border-box 的区别是什么?
「2」块级元素,行内元素,行内块级元素有什么区别?
「3」什么是 BFC,有哪些使用场景?
「4」如何用 Flex 布局实现水平,垂直方向的 居中对齐,两端对齐?换多行显示?如何撑满容器的剩余部分?容器空间不够,如何缩小?
「5」绝对定位的定位规则是怎样的?
「6」如何实现绝对定位元素的水平居中?
「7」position 属性有哪些值?
「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」如何遍历对象的属性?
基础语法
「1」var 和 let 有什么差别?
「2」什么是闭包?闭包有哪些使用场景?
「3」this 在五种场景(默认绑定、隐式绑定、显式绑定、new绑定、箭头函数绑定)的指向是怎样的?
「4」聊聊 JavaScript 的基于原型链的继承?
DOM
事件
「1」事件的冒泡和捕获是什么? 哪些事件会冒泡?如何阻止事件冒泡?
「2」什么是事件委托? 有什么用?
「3」window.onload 和 DOMContentLoaded 的区别?
BOM
异步编程
「1」Promise 解决了什么问题?
「2」除 Promise 外还有哪些异步编程解决方案?
「3」用递归 和 Promise 实现异步的串行控制。
「4」微任务和宏任务的差别是什么?
存储
「1」本地存储 storage 和 Cookie 有什么差别?
「2」能读取 cookie 策略是什么?
其他
「1」什么是防抖?什么是节流?有哪些使用场景?
网络知识
「1」HTTP 有哪些状态码? GET 和 POST 有什么区别?URI 的组成部分?什么是跨域及解决方案?Cookie 有哪些属性及作用?HTTP2 是什么,做了哪些改进?
「2」TCP 和 UDP 有什么区别?TCP 三次握手的过程是怎样的?如何理解 TCP 的 keep-alive?