面试题「前端」

Part One:HTML

1.对HTML语义化的理解 ✅

2.script标签中defer和async的区别 ✅

3.e.target 和 e.currentTarget 的区别 ❌

e.target 是触发事件的元素 | e.currentTarget 是绑定事件的元素

  • 参考链接

4.对 web worker 的理解 ❌

Web Worker 可以使脚本运行在新的线程中,它们独立于主线程,可以进行大量的计算活动,而不会影响主线程的 UI 渲染。当计算结束之后,它们可以把结果发送给主线程,从而形成了高效、良好的用户体验。

  • 参考链接

Part Two: CSS

1.CSS选择器及其优先级 ✅

相邻兄弟选择器 子选择器 后代选择器 通配符选择器最低

2.盒模型有哪些?有哪些使用场景? ✅

3.怎么防止重绘和回流 ✅

4.清除浮动 ❌ 「答的不全,只答出来了 BFC 的方法」

注意:清除浮动不是不用浮动,清除浮动产生的父容器高度塌陷

(1) 给父元素添加高度「扩展性不好」

(2) clear:both;

在父元素中的子元素最后添加一个块级元素,设置 style="clear: both"。「必须是一个块级元素,否则没法撑开父元素高度」

(3) 伪元素清除浮动

使用 :after 设置一个 block 级别的元素

配合 hasLayout 使用

(4) 使用 BFC 布局

添加 overflow: hidden

(5) 使用 br 标签

<br clear="all" />

  • 参考文章

Part Three: JavaScript

1.JavaScript有哪些数据类型 ✅

2.== 操作符的强制类型转换规则 ❌

以下为执行顺序