返回

前端面试题集每日一练Day3:攻克难关,成就前端大神之路

前端





前端工程师是当下炙手可热的技术岗位之一,想要成为一名优秀的前端工程师,不仅需要扎实的基础功底,还需要具备快速学习和解决问题的能力。而前端面试题集每日一练就是帮助您快速提升前端技能的利器。

## 前端面试题集每日一练Day3

**1. script标签中defer和async属性的区别?** 

defer和async都是HTML5中script标签的属性,它们都允许浏览器异步加载脚本,但它们之间还是存在一些区别的:

* defer属性:当浏览器解析到带有defer属性的script标签时,它会立即下载脚本文件,但不会立即执行。脚本文件下载完成后,浏览器会在DOMContentLoaded事件触发后执行脚本。
* async属性:当浏览器解析到带有async属性的script标签时,它会立即下载脚本文件,并且会在下载完成后立即执行脚本。这意味着async脚本的执行顺序不受其他脚本的影响,也不受DOM加载状态的影响。

**2. 单行/多行文本溢出可以怎么处理?** 

当文本溢出元素的边界时,我们可以使用以下方法来处理:

* **使用CSS属性text-overflow:**  text-overflow属性允许我们控制文本在溢出元素边界时如何显示。我们可以使用以下值来设置text-overflow属性:

    * clip:文本被裁剪,不会显示溢出的部分。
    * ellipsis:文本被省略,并在末尾显示省略号(...)。
    * visible:文本完全显示,不会被裁剪或省略。

* **使用CSS属性overflow:**  overflow属性允许我们控制元素中内容的溢出方式。我们可以使用以下值来设置overflow属性:

    * visible:内容完全显示,不会被裁剪或隐藏。
    * hidden:内容被隐藏,不会显示溢出的部分。
    * scroll:在元素中显示滚动条,允许用户滚动查看溢出的内容。

* **使用JavaScript:**  我们可以使用JavaScript来动态调整元素的宽高,以避免文本溢出。例如,我们可以使用以下代码来调整元素的宽度,以适应文本的长度:

var element = document.getElementById('element');
element.style.width = element.scrollWidth + 'px';


**3. undefined和null的区别?typeof null的结果为什么是object?** 

* **undefined:**  undefined表示变量尚未被赋值。
* **null:**  null表示一个空对象引用。

typeof null的结果之所以是object,是因为在JavaScript中,null被认为是一个特殊的对象。这主要是为了兼容其他编程语言,例如C++和Java,在这些语言中,null也是一个对象。

## 结语

前端面试题集每日一练旨在帮助您快速提升前端技能,掌握前端面试的必备知识。通过每天练习一道题目,您将逐渐积累前端知识,并提高解决问题的能力。持之以恒,您终将成为一名优秀的前端工程师!